您的位置:首页 > 产品设计 > 产品经理

《Test-Driven Development》学习点滴记录

2006-09-07 22:20 316 查看
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继续学习中============
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: