本文节选自《测试驱动的面向对象软件开发》 第1章第4节“测试驱动开发简介” TDD核心的循环是:写一个测试;写一些代码让测试通过;重构代码,使被测试特征的实现尽可能简单。重复这个过程,如图1-1所示。 图1-1基本TDD循环 在开发系统时,我们利用TDD来得到系统实现品质(“它能工作吗?”)和设计品质(“它的结构好吗?”)的反馈。以测试优先的方式来开发可以事半功倍。写测试有如下好处: 澄清下一部分工作的验收条件——我们必须问自己怎样才算是完成了工作(设计)。 鼓励我们写出松耦合的组件,这样它们就能够容易地分开来测试,并在较高的层面上组织在一起(设计)。 为代码功能添加一段可执行的描述(设计)。 添加到完整的回归测试套件中(实现)。 运行测试有如下好处: 在我们还很清楚情况时检测到错误(实现)。 让我们知道何时已经做得够好了,避免“镀金的”和不必要的特征(设计)。 这个反馈循环可以总结为TDD金规: -----------------------------------------------------------------------