态度决定高度、企图决定版图、格局决定结局

导航

《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编辑  收藏  举报