C#单元测试常用 Mocking 类库及对比
一个优秀的单元测试 Mocking 类库,需要具备如下几个特性:
- 易用性:有非常明确的 API ,易于使用并易于记忆。
- 健壮性:行为结果始终一致,并保持准确。
- 帮助性:当程序出错时,给出尽可能明确的原因提示。
如果我们所使用的类库没有满足上述条件,编写测试用例的过程将变得复杂和困难,使用类库不仅没有节省时间,反而可能使我们更加迷惑。在这种条件下,我们可能更愿意删除测试用例,之前的工作也就浪费了。
在 .NET 世界中,下面是一些框架或类库的比较:
目前主流的 Mocking 类库都会支持以下主要功能:
- 无需学习 Record/Replay/Verify 模型,仅需 Mock 你需要的类型,进而验证结果或行为。
- 无需学习诸如 mock/stub/fake/dynamic/spy 等概念。
- 低学习曲线,API 简单明确,大部分时间不需要翻阅文档。
- 强类型,可直接使用对象类型配置返回值或约束条件。
- 既可以 Mock 接口类型,也可以 Mock 类类型。
- 支持定义覆盖,可以覆盖 Fixture 中的预先配置。
- 当 Mock 类时,可为构造函数传递参数。
- 支持拦截和引发事件通知。
- 直观的支持 out/ref 参数。
下面是一些 Mocking 类库的链接:
- NSubstitute
- Moq
- Rhino Mocks
- Microsoft Fakes Commercial (included with Visual Studio 2012 Ultimate)
- NMock
- EasyMock.NET
- TypeMock Isolator Commercial / Paid
- JustMock Free version and Commercial / Paid version
- FakeItEasy
出处:https://www.cnblogs.com/gaochundong/p/unit_testing_mocking_libraries_introduction.html
关注我】。(●'◡'●)
如果,您希望更容易地发现我的新博客,不妨点击一下绿色通道的【因为,我的写作热情也离不开您的肯定与支持,感谢您的阅读,我是【Jack_孟】!
本文来自博客园,作者:jack_Meng,转载请注明原文链接:https://www.cnblogs.com/mq0036/p/16255017.html
【免责声明】本文来自源于网络,如涉及版权或侵权问题,请及时联系我们,我们将第一时间删除或更改!