【问题标题】:MSTest with Ninject, MVC3 and WCF使用 Ninject、MVC3 和 WCF 进行 MSTest
【发布时间】:2011-09-20 08:51:12
【问题描述】:

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

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

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

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

我见过的例子,使用起订量扩展,乍一看似乎很复杂。如果可能的话,我宁愿不用起订量。

如果有任何链接、示例、相关回复等,我将不胜感激。 谢谢

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 谢谢。我现在正在这样做。在将此标记为答案之前,我会等待任何其他建议。
    • 好的,所以我现在同意了。计划使用 Moq 以及它仅有助于创建运行时模拟类定义。
    【解决方案2】:

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

    您可能会发现AutoFixture 在这个领域很有用。它具有一些自动模拟容器功能(您还应该搜索该术语)。请记住,在测试中神奇地连接大量隐式模拟和 wtuff 并不是一件简单的事——在测试中对魔法和大对象图的依赖越少越好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-20
      相关资源
      最近更新 更多