【发布时间】:2011-04-11 18:35:59
【问题描述】:
应该使用目标类的内置单元测试生成器(VS)还是我应该自己学习如何编写单元测试?这个“模拟”是什么?我一遍又一遍地听到它,但没人愿意给出一个好的解释。
提前致谢。
【问题讨论】:
-
What is Mocking? 的可能重复项
标签: c# unit-testing mocking
应该使用目标类的内置单元测试生成器(VS)还是我应该自己学习如何编写单元测试?这个“模拟”是什么?我一遍又一遍地听到它,但没人愿意给出一个好的解释。
提前致谢。
【问题讨论】:
标签: c# unit-testing mocking
您需要学会自己编写单元测试。从正确理解许多人会犯错误的术语开始:
单元测试:测试单个代码单元,非常小的原子测试。
集成测试:测试集成在一起的多个代码单元,以通过不同的层并确保它们正确地相互使用。这些应该在单元测试验证各个单元独立工作之后完成。许多人错误地将这些称为单元测试。
构建验证测试:通过部署构建的产品并运行测试来测试构建的产品,这些测试将以用户的方式与之交互。也经常被错误地称为单元测试。这些是最大最全功能的测试,通常只是由测试团队手动完成,而不是自动化。
这是 MOQ 的快速入门,它是一个模拟框架: https://github.com/Moq/moq4/wiki/Quickstart
Mocking 是取一小段可能依赖于其他事物的代码的行为,模拟那些其他事物,以便您可以控制要测试的代码段周围的环境。
模拟的目的是测试中的原子性。它允许您只测试您想要的单个代码段,而不会因为相关代码段中的错误而影响它的测试。模拟还使您能够制造各种场景来测试每段代码的边缘情况。
Mocking 通常用于在单元测试中围绕目标代码创建边界,尽管在集成测试中也经常使用它来制造充当目标集成代码链的种子的资源。
【讨论】: