微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用IoC进行单元测试

如何解决使用IoC进行单元测试

一般而言,单元测试不需要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容器用于单元测试?使用IoC在大型解决方案(超过50个项目)中管理模拟是否有用?有经验吗?是否有任何在单元测试中很好地使用它的C#库?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。