《测试驱动开发》(中文版)设想把编程看成是转动曲柄从井里提一桶水上来的过程。如果水桶比较小,那么仅需一个能自由转动的曲柄就可以了。如果水桶比较大而且装满水,那么还没等水桶全部被提上来你就会很累了。你需要一个防倒转的装置,以保证每转一次可以休息一会儿。水桶越重,防倒转的棘齿相距越近。测试驱动开发中的测试程序就是防倒转装置上的棘齿。一旦我们的某个测试程序能工作了,你就知道,它从现在开始并且以后永远都可以工作了。相比于测试程序没有通过,你距离让所有的测试程序都工作又近了一步。现在我们的工作是让下一个测试程序工作,然后再下一个,就这样一直进行。分析表明,要编程解决的问题越难,每次测试所覆盖的范围就应该越小。
......(更多)
......(更多)
第一部分 资金实例
第一章 多币种资金
第二章 变质的对象
第三章 一切均等
第四章 私有性
第五章 法郎在诉说
第六章 再谈一切均等
第七章 苹果和桔子
第八章 制造对象
第九章 我们所处的时代
第十章 有趣的TIMES方法
……
第二部分 xUNIT实例
第十八章 步入xUNIT
第十九章 设置表格
第二十章 后期整理
第二十一章 计数
第二十二章 失败处理
第二十三章 如何组成一组测试
第二十四章 xUNIT回顾
第三部分 测试驱动开发的模式
第二十五章 测试驱动开发模式
第二十六章 不可运行状态模式
第二十七章 测试模式
第二十八章 可运行模式
第二十九章 xUNIT模式
第三十章 设计模式
第三十一章 重构
第三十二章 掌握TDD
......(更多)
测试驱动开发的过程,大体上可以归纳为几个步骤: (1)快速新增一个测试。 (2)运行所有的测试,发现最新的测试不能通过。 (3)做一些小小的改动。 (4)运行所有的测试,并且全部通过。 (5)重构代码,以消除重复设计,优化设计结构。
在测试驱动开发中,我们要这么做: - 只有自动测试失败时,我们才重写代码 - 消除重复设计,优化设计结构 不可运行/可运行/重构——这就是测试驱动开发的口号。
......(更多)