MSTest与Ninject,MVC3和WCF

时间:2011-09-20 08:51:13

标签: wcf asp.net-mvc-3 ninject mstest

我有一个ASP.Net MVC3项目,它调用WCF服务来获取数据。 WCF服务反过来使用管理器和存储库等(在其他类库项目中)来获取所需的数据。

我已在Web项目和WCF项目中应用了Ninject。因为我使用Nuget来安装Ninject MVC3,所以它在APP_START中创建了一个带有bootstrapper,webactivator等的类。

现在我想用Microsoft的测试框架编写单元测试,而不是NUnit等。

我如何开始?也就是说,我在单元测试类中编写什么来使用Ninject来为web和wcf项目提供接口的模拟实现?

我见过的例子,使用Moq扩展,乍一看似乎很复杂。如果可能的话,我宁愿没有Moq。

我很感激任何链接,示例,相关回复等。 感谢

2 个答案:

答案 0 :(得分:3)

您不应该使用Ninject来创建要测试的类的实例。只需创建要测试的控制器或服务的实例,并将模拟对象作为构造函数参数传递给每个依赖项。

答案 1 :(得分:1)

首先,正如@Remo Gloor所说,你绝对不应该在测试中使用DI容器。

您可能会发现AutoFixture在此空间中非常有用。它具有一些自动插入容器功能(您还应该搜索该术语)。请记住,在测试中使用大量隐式模拟和重装是神奇地连接起来并不简单 - 你在测试中依赖魔法和大对象图表的越少越好。