我认为以前没有人问过这个问题,尽管很难搜索像单元测试 ioc 容器这样的术语,也很难找到有关如何实现 IoC 以执行单元测试的问题。
我想对 IoC 容器本身进行单元测试,基本上是因为有时我对容器有问题(就像你对应用程序的任何其他部分一样),而且仅仅调试就测试依赖项的解决方案非常麻烦。
如果我可以为这些案例引入单元测试,我认为它会为我省去很多麻烦。
更新
是这样的,不是单元测试吗?是集成测试吗?
[TestClass]
public class IoC
{
private IWindsorContainer _container;
[TestInitialize]
public void TestInit()
{
_container = new WindsorContainer();
_container.Install(new WindsorInstaller());
}
[TestMethod]
public void ContainerShouldResolve_MembershipProvider()
{
ContainerShouldResolve<IMembershipProvider>();
}
public void ContainerShouldResolve<T>()
{
T result = _container.Resolve<T>();
Assert.IsInstanceOfType(result, typeof(T));
}
}
唯一真正的“非独立”参考是我必须连接到的连接字符串app.config
。另外:在尝试解决PerWebRequest
生活方式组件时,我也必须添加相关的httpModule
。
顺便说一句:通过这样做,与使用 Web 应用程序调试它所花费的时间相比,我很快就发现了问题的根源。