惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

G
Google Developers Blog
人人都是产品经理
人人都是产品经理
爱范儿
爱范儿
云风的 BLOG
云风的 BLOG
Last Week in AI
Last Week in AI
H
Hackread – Cybersecurity News, Data Breaches, AI and More
B
Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
H
Help Net Security
B
Blog RSS Feed
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
N
Netflix TechBlog - Medium
S
SegmentFault 最新的问题
The Cloudflare Blog
I
InfoQ
美团技术团队
博客园 - 三生石上(FineUI控件)
MyScale Blog
MyScale Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 司徒正美
L
LangChain Blog
A
About on SuperTechFans
T
The Blog of Author Tim Ferriss
Y
Y Combinator Blog

顾宇的博客

用 AI 重启生活 初始化 MacOS 关于我 再次见面,期待相遇 演讲和分享 如何通过政策红利获利?——海南发展(SZ.002163)交易复盘 2025年的总结 2024年的总结 2023年的总结 2022年的总结 《敏捷测试价值观、方法与实践》序 【翻译】函数式编程中的领域驱动设计 【翻译】通过跟踪技术债来改进你的开发实践 【翻译】不要把测试用例自动化 【翻译】持续部署 vs 持续交付 【翻译】做多少测试才足够 【翻译】蓝绿部署的起源 【翻译】持续部署 【翻译】作为演进式架构的微服务架构 【翻译】gRPC 的动机和设计原则 【翻译】分布式计算谬误 【翻译】微服务和分布式对象第一法则 采用 Multipass 管理本机虚拟 K8S 集群 博客主题升级到 Congo 2.0 【翻译】Terraform 最佳实践:模块组合 【翻译】Kubernetes 部署语言(Kubernetes Deployment Language) 通过 Vagrant 一键初始化 K8S 集群 2021年的总结 通过 Github Actions 部署 Mkdocs 文档 博客迁移到了新的 Hugo 主题
【翻译】测试替身
顾宇 · 2022-04-20 · via 顾宇的博客
  1. 顾宇的博客/
  2. Blogs/
  3. 【翻译】测试替身/

原文:https://martinfowler.com/bliki/TestDouble.html

Gerard Meszaros 正在编写《xUnit测试模式》。他遇到的一件尴尬的事情是 stub, mock, fake, dummy 的各种名称的定义,以及人们用来替代测试系统的某些部分的其他东西。为了解决这个问题,他提出了自己的词汇表,我认为这个词汇表值得进一步传播。

他使用的通用术语是测试替身(想想特技替身)。 测试替身是一个通用术语,用于替换生产对象以进行测试的任何情况。 Gerard 列出了多种类型的测试替身:

Dummy对象用于填充参数列表,实际上不会真正的使用。

Fake对象实际上已经有了可以工作的实现,但是通常会采取一些捷径,这使得它们不适合放在生产环境。( 内存数据库比如 SQLite 就是一个好例子)

Stub为测试期间的调用提供了预设的返回值,通常不响应超出测试内容的请求。

Spy也是 Stub,并且会记录一些读对象如何被调用的信息。例如一个 E-mail 服务记录了多少消息被发送。

Mock 预先编程了期望的返回值,这些期望的返回值形成了它们预期接收到的调用规范。 如果它收到了他们非预期的调用,可以抛出异常,并在验证过程中进行检查是否获得了所有调用的期望结果。

(完)