我们在所有的项目中都使用了ninject,正如你所知道的,有时很难测试内核是否能够在执行时解析所有类型,因为有时当绑定和自动绑定(通过ninject扩展)的数量很大时,控制权就会丢失。
所以,我在这里问的是,在加载所有模块和绑定之后,我如何知道我的内核将能够解析每种类型?你做过任何类型的单元测试吗?或者您只是在执行时对应用程序进行接受测试?任何建议都是很棒的:)
发布于 2019-01-16 02:47:14
基于欧文的回答,但这并不适用于我。我要做的就是将我的依赖项的新实例传递到一个新的内核实例中,然后填充Bindings
属性。
[TestMethod]
public void TestBindings
{
var dependencies = new MyDependencies();
var kernel = new StandardKernel(dependencies);
foreach (var binding in dependencies.Bindings)
{
kernel.Get(binding.Service);
}
}
另外,我选择使用kernal.Get
,这样如果服务不能被解析,那么测试就会因为抛出的错误而失败,并在消息中显示缺少的绑定
https://stackoverflow.com/questions/12371027
复制相似问题