C# - 单元测试,模拟?

ebb*_*ebb 10 c# unit-testing mocking

应该使用目标类的内置单元测试生成器(VS),还是应该学习如何编写单元测试?什么是"模拟"的东西?我一遍又一遍地听到,但没有人愿意给出一个很好的解释.

提前致谢.

Jim*_*ffa 18

您需要学习自己编写单元测试.从良好的理解术语开始,很多人犯错误:

单元测试:测试单个代码单元,非常小的原子测试.

集成测试:测试集成在一起的多个代码单元,遍历不同的层并确保它们正确使用彼此.这些应在单元测试验证各个单元独立工作后完成.很多人错误地将这些称为单元测试.

内置验证测试:通过部署并运行将以用户方式与其交互的测试来测试构建的产品.也经常错误地称为单元测试.这些是最全功能最强大的测试,通常只是由测试团队手动完成而不是自动化.

这是MOQ的快速入门,它是一个模拟框架:https: //github.com/Moq/moq4/wiki/Quickstart

模拟是一小段代码可能依赖于其他东西的行为,嘲笑其他东西,以便您可以控制要测试的代码段周围的环境.

模拟的目的是测试中的原子性.它允许您只测试您想要的单个代码段,而不会因为依赖代码段中的错误而影响测试.同样,模拟使您能够制作各种场景来测试每段代码的边缘情况.

模拟通常用于在单元测试中围绕目标代码创建边界,尽管在集成测试中使用模型也是常见的,因为它可以构建作为您所针对的集成代码链的种子的资源.