Testing 测试统一运行时配置

Testing 测试统一运行时配置,testing,dependency-injection,unity-container,Testing,Dependency Injection,Unity Container,有一件事困扰着我,那就是DI容器和特定的Unity,因为我使用的就是它。如果我忘记注册一个类型,当我稍后尝试解析一个需要忘记注册的类型时,程序将崩溃。我以前用显式调用new,编译器会帮我检查,但现在没有强制检查 我的大多数resolve调用都发生在程序初始化期间,因此问题并没有那么大。 但是我仍然想测试它,一个想法是设置容器注册,然后扫描程序集以查找对container.resolve的调用 我从未见过这样的事情,所以我是不是走错了路?是否应该改为单元/集成测试它?一些容器(StructureM

有一件事困扰着我,那就是DI容器和特定的Unity,因为我使用的就是它。如果我忘记注册一个类型,当我稍后尝试解析一个需要忘记注册的类型时,程序将崩溃。我以前用显式调用new,编译器会帮我检查,但现在没有强制检查

我的大多数resolve调用都发生在程序初始化期间,因此问题并没有那么大。 但是我仍然想测试它,一个想法是设置容器注册,然后扫描程序集以查找对container.resolve的调用

我从未见过这样的事情,所以我是不是走错了路?是否应该改为单元/集成测试它?

一些容器(StructureMap IIRC)有一些方法,您可以调用这些方法让它们自行诊断,但AFAIR Unity没有这种方法

我一直怀疑自我诊断方法是否有多大价值。它只告诉您已经注册的组件在内部是一致的,但是您仍然可以要求容器解决一些从未配置过的问题。假设您已经配置了Foo、Bar和Baz。这些可能是一致的,但如果你要Qux呢

自我诊断永远不会捕捉到这种情况

我宁愿推荐一套集成测试,尝试解决所有适当的输入。如果遵循,则应该为给定的应用程序定义解析方法的输入集