《Test-Driven Development》学习点滴记录
1.当我们开始某一项工作时,我们需要建立一个计划清单(to-do list),以提醒我们需要做些什么事情。
comment:从小学的时候,老师就开始这样说了。诶,都二十多年了,还是没有做到:(
2.记住,我们不是从建立对象开始,而是从测试开始
3.尽快使测试运行起来:
a .伪代码:返回一个变量,并逐渐用变量替代常量,直至伪代码都变成真实代码。
b. 显示实现:将真实的实现键入。
4.数值对象(Value Object):数值对象的一个要求就是一旦数值对象实例变量在构造函数中指定,那么以后再也不允许发生变化。数值对象的一个隐含意思就是所有的操作都必须返回一个新的对象。另一个隐含意思:必须实现Equals();
5.无所顾忌地通过复制和编辑来写出这个测试程序。
自我保证在重复设计消除之前,决不回家。
comment:测试代码的复杂度为1.它没有分支和循环,所以很多代码可以通过拷贝和编辑来写测试。
6.重构前,保持程序测试完整性。
comment:很多时候,总是想偷懒,这个已经开始有体会了。
7.测试驱动开发过程:
a.加入一个小的测试
b.运行所有的测试,运行失败。
c.适当修改
d.运行测试并成功
e.重构,消除重复设计,优化设计结构。
这里可以加入一张图片:
8.测试程序是TDD的副产品。不要指望这些测试代替其他测试,如性能测试,压力测试等
9.TDD反复出现的三个方面:
a.让测试利落运行的三个方法:伪代码,三角法,以及显明实现(Obvious Implemention)
b.把消除代码与测试间的重复设计作为驱动设计的一个手段
c.控制测试间隙的能力,当道路光滑时,增加摩擦力,在状况解除时,就开快一些。
comment:第三句不是很懂:(
10.当建立一个测试,迫使创建一个稍后要用到的类。
11.为了消除显示类定义而引入多态。
12.让测试尽快通过编译,是压倒一切的中心任务。
13.除非有更好的动机,否则不要引入更多的设计。
14.这个是Martin Fowler在序中提到的:模式拷贝。
模式拷贝,本身并不是好的编程方法。模式一般都是半成品,用到你的项目中时要再回炉一次。然而处理这样问题的一个好的方法是:一开始先不管那么多,把模式拷贝过来,接下来采用重构和测试优先的办法对其进行改编。---似乎很有道理:)
============2006-9-7继续学习中============
posted on 2006-09-07 22:20 flyingchen 阅读(312) 评论(0) 编辑 收藏 举报