【发布时间】:2020-11-19 09:16:24
【问题描述】:
我在学习测试驱动开发的在线课程时遇到了测试替身的概念。根据课程中测试替身的定义:
测试替身:测试替身是在单元测试中用来替代真实生产系统协作者的对象。
我知道测试替身是什么意思。但是后来有人提到有各种类型的测试替身。课程中提到的是:
Dummy:可以根据需要传递但没有任何类型的测试实现且永远不应使用的对象。
Fake :这些对象通常具有特定接口的简化功能实现,足以进行测试 但不适用于生产。
存根:这些对象为实现提供适合测试的预设答案。
间谍:这些对象提供了记录传入值的实现,以便测试可以使用它们。
Mocks:这些对象经过预先编程,可以期待特定的调用和参数,并且可以在必要时抛出异常。
我以前使用过模拟,并且对它们是什么以及如何使用它们有一个简要的了解。虽然我对其他提到的测试替身类型感到困惑。
有人可以帮助我区分这些类型的测试替身以及何时使用吗?
【问题讨论】:
标签: unit-testing testing automated-tests tdd