使用IoC进行单元测试

如何将IoC容器用于单元测试?使用IoC在大型解决方案(超过50个项目)中管理模拟是否有用?有经验吗?是否有任何在单元测试中很好地使用它的C#库?

回答:

一般而言,单元测试不需要DI容器,因为单元测试全部与职责分离有关。

考虑使用构造函数注入的类

public MyClass(IMyDependency dep) { }

在您的整个应用程序中,可能隐藏着一个巨大的依赖图IMyDependency,但是在单元测试中,您将其全部压平为单个Test

Double。

您可以使用Moq或RhinoMocks之类的动态模拟来生成Test Double,但这不是必需的。

var dep = new Mock<IMyDependency>().Object;

var sut = new MyClass(dep);

在某些情况下,可以使用自动模拟容器,但是您不需要使用生产应用程序使用的同一DI容器。

以上是 使用IoC进行单元测试 的全部内容, 来源链接: utcz.com/qa/398152.html

回到顶部