测试Ninject(或任何IoC容器)绑定?

时间:2011-05-16 08:55:33

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

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

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

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

是否像写

一样简单
_kernel.Get<IService>(); 

让异常未通过测试?或者是否有一种更聪明的方法来使用用于DI的MVC挂钩?

1 个答案:

答案 0 :(得分:3)

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

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