【问题标题】:Testing Ninject (or any IoC container) bindings?测试 Ninject(或任何 IoC 容器)绑定?
【发布时间】:2011-05-16 08:55:32
【问题描述】:

我在我的 ASP.NET MVC 3 项目中使用 Ninject,现在有一个复杂的对象图。

我想要一些单元测试来确保我所有需要的类型都是可绑定的 - 目前我发现的唯一方法是通过 ASPX 错误页面。

我无法找到有关如何执行此操作的文档。

就这么简单吗

_kernel.Get<IService>(); 

并让异常无法通过测试?或者有没有更聪明的方法来使用 DI 的 MVC 挂钩?

【问题讨论】:

  • Simple Injector DI 容器有一个Verify() 方法,用于检查是否可以解析所有已注册的对象。通过在配置阶段之后调用,它可以让您快速失败。我也在单元测试中运行完整的配置以更快地失败。我不知道其他 DI 容器有哪些功能允许这样做。

标签: unit-testing asp.net-mvc-3 dependency-injection ninject


【解决方案1】:

除了普通的单元测试之外,我们还有集成测试,可以测试除 UI 和 DB 之外的所有内容,包括 Ninject 绑定。因此,我们在生产中设置所有内容并将这些部分重新绑定到模拟。这也将测试 Ninject 绑定。​​

在 MVC 的情况下,这意味着您必须创建一个内核,加载与生产中相同的模块并重新绑定数据库访问。然后创建控制器实例并调用您要测试的操作并检查它们是否按预期运行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-26
    • 1970-01-01
    相关资源
    最近更新 更多