一般而言,单元测试不需要DI容器,因为单元测试全部与职责分离有关。
考虑使用构造函数注入的类
public MyClass(IMyDependency dep) { }
在您的整个应用程序中,可能隐藏着一个巨大的依赖图
IMyDependency,但是在单元测试中,您将其全部压平为单个Test
Double。
您可以使用Moq或RhinoMocks之类的动态模拟来生成Test Double,但这不是必需的。
var dep = new Mock<IMyDependency>().Object;var sut = new MyClass(dep);
在某些情况下,可以使用自动模拟容器,但是您不需要使用生产应用程序使用的同一DI容器。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)