第一章
1.创建一个清单,列出我们所知道的需要让其运行通过的测试
2.通过一小段代码说明我们希望看到怎样的一种操作
3.让测试运行通过
4.逐渐使工作代码一般化,用变量代替常量
5.将新工作逐步加入计划清单,而不是一次全部提出
第二章
1.伪实现--返回一个常量并逐渐用变量代替常量,直至伪实现代码成为真实实现的代码
2.显明实现--将真实的实现代码键入
第三章
1.关于数值对象隐含规定了一种操作:
a.数值对象的一个要求就是一旦数值对象的实例变量值在构造函数中被指定,那么以后就再也不允许发生变化
b.数值对象的一个隐含的意思就是所有的操作都必须返回一个新的对象
c.另一个隐含的意思是使用数值对象必须要实现equals()函数,实现equals()函数就必须实现hashCode()函数
2.测试这种操作(equals())
3.给它(equals())一个简单的实现
4.并不立即重构,而是进一步测试
5.通过重构一次性解决了两个测试用例所引入的重复设计
第四章
1.减少测试程序与代码之间的耦合度
第五六章
1.无法完成一个大的测试,所以首先通过一个小的测试先行动起来
2.消除重复设计。
第七章
1.着手解决一个困扰我们的难题并将它转化为一个测试程序
2.除非有更好的动机,否则不要引入更多的设计
第八章
1.通过引入工厂方法,消除测试代码与具体子类存在的耦合
第九章
1.大的设计构思受阻,所以我们着手解决前面所发现的小问题
第十章
1.编写toString()函数以便调试
第十一章
1.消除重复测试