测试替身的五种面孔:当Mock、Stub、Fake、Spy和Dummy不再是同义词
一个真实的场景:你正在为一个电商系统的订单服务编写单元测试。订单服务依赖库存检查、支付处理、邮件通知三个外部服务。如果使用真实的支付网关,每次测试都会产生实际费用;如果连接真实的SMTP服务器,测试邮箱会被垃圾邮件淹没。更糟糕的是,支付网关的响应时间不稳定,导致测试时快时慢。 ...
一个真实的场景:你正在为一个电商系统的订单服务编写单元测试。订单服务依赖库存检查、支付处理、邮件通知三个外部服务。如果使用真实的支付网关,每次测试都会产生实际费用;如果连接真实的SMTP服务器,测试邮箱会被垃圾邮件淹没。更糟糕的是,支付网关的响应时间不稳定,导致测试时快时慢。 ...
1984年,Donald Knuth在斯坦福大学提出了一个激进的设想:程序员应该像散文家一样写作。在他著名的论文《Literate Programming》中,Knuth写道:“让我们改变传统的编程观念:不再想象我们的主要任务是指示计算机做什么,而是专注于向人类解释我们想让计算机做什么。” ...
2017年元旦凌晨,Cloudflare的DNS服务突然开始大面积失败。用户访问使用CNAME记录的网站时,DNS解析直接报错。工程师们紧急排查后发现,罪魁祸首竟然是一秒钟——一个闰秒。 ...