代码整洁之道 读书笔记 - 第9章 单元测试
TDD三定律
定律一 在编写不能通过的单元测试前,不可编写生产代码。
定律二 只可编写刚好无法通过的单元测试,不能编译也算不通过。
定律三 只可编写刚好以通过当前失败测试的生产代码。
保持测试整洁
测试代码和生产代码一样重要。它需要被思考、被设计和被照料。它该像生产代码一般保持整洁。
整洁的测试
在单元测试中,可读性甚至比生产代码中还重要。测试如何才能做到可读?明确,简洁,还有足够的表达力。
每个测试都清晰地拆分为三个环节,构造-操作-检验(BUILD-OPERATE-CHECK)模式。
第一个环节构造测试数据。
第二个环节操作测试数据。
第三个部分检验操作是否得到期望的结果。
每个测试一个断言
最好的说法是单个测试中的断言数量应该最小化。
每个测试函数中只测试一个概念。
F.I.R.S.T.
整洁的测试还遵循以下5条规则
快速(Fast) 测试应该够快。
独立(Independent) 测试应该相互独立。
可重复(Repeatable) 测试应当可在任何环境中重复通过。
自主验证(Self-Validating) 测试应该有布尔值输出。
及时(Timely) 测试应及时编写。