测试替身
2006年1月17日
Gerard Meszaros 正在编写一本关于使用各种Xunit 框架的模式的书籍。他遇到的一个尴尬的事情是,人们用来模拟系统部分进行测试的存根、模拟、伪造、虚拟对象和其他东西的各种名称。为了解决这个问题,他提出了自己的词汇,我认为值得进一步推广。
他使用的通用术语是测试替身(想想替身)。测试替身是用于测试目的替换生产对象的通用术语。Gerard 列出了各种类型的替身
- 虚拟对象被传递,但实际上从未使用过。通常它们只是用来填充参数列表。
- 伪造对象实际上有工作实现,但通常会采取一些捷径,这使得它们不适合生产(内存测试数据库就是一个很好的例子)。
- 存根为测试期间的调用提供预先录制好的答案,通常对测试中未编程的内容不做出任何响应。
- 间谍是记录一些基于它们被调用方式的信息的存根。一种形式可能是记录发送了多少条消息的电子邮件服务。
- 模拟预先编程了期望,这些期望构成了它们预期接收的调用的规范。如果它们接收到意外的调用,它们会抛出异常,并且在验证期间会检查它们是否收到了所有预期的调用。
进一步阅读
我在模拟不是存根中扩展了模拟、替身等的使用