小编Ale*_*Dee的帖子

使用Ninject在执行UnitTesting时使用Moq模拟对象

我在使用Ninject的UnitTesting项目中使用Moq时遇到了麻烦.

首先谈谈我的解决方案.它包含几个项目(BussinesLogic,DAL,Infrastructure ...).我的目标是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,所以我可能也需要模拟它,因为业务逻辑正在基于该messageObject做一些事情.所以我想以某种方式设置属性到该消息对象,然后在其上调用一些businessLogic方法,所以我可以看到逻辑是否正常工作.

我希望我没有太多复杂化.

请耐心等待,我对嘲弄和依赖注入完全陌生,但我愿意学习.

nunit unit-testing moq ninject-2

7
推荐指数
1
解决办法
6115
查看次数

标签 统计

moq ×1

ninject-2 ×1

nunit ×1

unit-testing ×1