持续交付2.0

关于TDD:十五个可执行的规则

Image

“ TDD 说容易就容易,说不容易就不容易。全在自己怎么想……”

1

TDD的
十五个规则

1、先编写测试,能逼着你写出已知道自己要写的代码。

2、让测试失败。让测试通过。清理代码。

3、别挖金子(金子指:那些较难或有趣的迷题)。

4、先写最简单、最具体、最基本,且易失败的测试。

5、能泛化时就泛化。

6、如果代码让人感觉不对,在继续走下去之前,先修正设计问题。

7、在开始下一个更复杂的测试前,穷尽简单情况测试。

8、如果必须写很多实现代码才能让测试通过,删掉测试,写一个更容易通过的简单测试。

9、从容不迫、循序渐进地完成所有测试。

10、不要在测试中添加测试不需要的东西。

11、别在测试中使用生产环境数据。

12、将测试的结构与生产代码的结构解耦。

13、测试越具体,代码越通用(在重构环节,具体代码被精修成更通用)

14、如果变换操作得到不够好的解决方案,试试另一种变换操作。

15、尽量不用调试器

2

可执行性是关键
在这十五条规则中,
只有 3 、 5、12 条目,在你刚看到时,可能会觉得稍难理解,
其它条目都很直白明了,具有可执行性(Actionable)。
TDD 的关键在于纪律。而这个纪律的必要部分也非常简单。那就是两点:
  • 小周期(分钟级,甚至秒级)
  • 先测试
另外,重构 和 TDD 是孪生兄弟。

二者缺一不可。
这十五原则来自于《匠艺整洁之道:程序员的职业修养》,
如果你感兴趣,可以读一下。

Image