测试驱动开发(TDD)
TDD的三条法则
- 第一法则 在编写失败的单元测试之前,你不得编写任何产品代码。
- 第二法则 你不得编写超出使测试失败所需的单元测试,不编译也算失败。
- 第三法则 你不得编写超出使当前失败的测试通过所需的产品代码。
清洁的测试
如果你不保持测试的清洁,你将失去它们。
可读性对于保持测试清洁非常重要。
每个测试只保留一个断言
推荐每个测试只保持一个断言,因为这样有助于保持每个测试易于理解。
每个测试一个概念
这条规则将帮助你保持函数的简短。
- 为你需要验证的每个概念编写一个测试
F.I.R.S.T
- 快速 测试应该是快速的。
- 独立 测试不应该相互依赖。
- 可重复 测试应该在任何环境中都是可重复的。
- 自我验证 测试应该有布尔输出。要么通过要么失败。
- 及时 单元测试应该在使它们通过的产品代码之前编写。如果你在产品代码之后编写测试,你可能会发现产品代码难以测试。