我在使用Ninject的UnitTesting项目中使用Moq时遇到问题。使用Moq嘲笑对象,在进行UnitTesting时使用Ninject
首先介绍一下我的解决方案。它包含多个项目(BussinesLogic,DAL,基础设施......)。我的目标是UnitTest我在BussinessLogic项目中使用的逻辑。 该解决方案基本上是为Windows服务,但我已经放入了逻辑,以便它可以独立运行。我使用Ninject和我指定天气我想使用ProductionModule或TestingModule(Windows服务使用ProductionModule,控制台应用程序使用TestingModule)
我使用工厂模式来获取ninject内核,只要我需要它在我的内部应用。
我的TestingModule继承自NinjectModule,其中我重载Load()方法,并在那里做绑定。例如:
Bind<IStorageManager>().To<StubStorageManager>();
我有StubStorageManager,但它是空的。它只包含来自IStorageManager的方法声明。
我想要做的事情是(以俗语形式): 创建一个unitTest,我将创建一个指定TestingModule作为其参数的新内核。然后我想创建一个模拟对象(让我们来看一个IStorageManager的模拟)storageManagerMock。 IStorageManager中的一些方法返回一个messageObject,所以我可能也需要嘲笑这一点,因此bussiness逻辑正在做一些基于该messageObject的事情。所以我想以某种方式设置该消息对象的属性,然后调用它的一些businessLogic方法,所以我可以看到逻辑是否正常工作。
我希望我没有太复杂。
请耐心等待,我完全不懂嘲笑和依赖注入,但愿意学习。
可能重复:http://stackoverflow.com/questions/1465849/using-ioc-for-unit-testing – 2011-04-29 13:23:50