[关闭]
@spiritnotes 2016-02-14T06:02:14.000000Z 字数 4579 阅读 1502

《测试驱动开发》

测试 读书笔记


前言

代码简洁可用(clean code that works),是测试驱动开发所追求的目标。

原因

测试驱动开发中的做法:

开发过程中所经历的阶段:

  1. 不可运行 - 写一个不能运行的测试程序,一开始这个测试程序甚至不能编译;
  2. 可运行 - 尽快让这个测试程序工作,为此可以在程序中使用一些不合情理的方法;
  3. 重构 - 消除在让测试程序工作的过程中产生的重复设计,优化设计结构;

第一部分 资金实例

1 多币种资金

建立美元类(成员amount),并实现times操作

建立todo-list,按照清单逐一实现并删除

2 变质的对象

修改实现times操作

尽快使测试程序可运行的三条策略:

做法:

3 一切均等

实现美元equals方法,并times操作返回新对象

数值对象:数值对象的实例变量值在构造函数中被指定,以后不允许发生变化,不需要担心别名问题,同时隐含了所有操作需要返回新对象。

4 私有性

将amount属性设置为私有

5 法郎在述说

拷贝美元类实现法郎类

6 再谈一切均等

消除重复代码,将公共代码部分移动到父类
为法郎和美元建立父类Money,将equals等操作移动到父类中。

7 苹果与桔子

法郎和美元相比较相等,修改Money的equals方法,使其先行判断类是否一样

8 制造对象

法郎和美元的times函数完全一致,使其times函数都返回Money,将美元和法郎的构造函数改为Money类下的工厂函数,Money.dollar/Money.franc,Money设置为抽象类

9 我们所处的时代

10 有趣的times方法

11 万恶之源

美元与法郎只剩下构造函数,删除美元与法郎类

12 加法,最后的部分

引入Expression类来表示货币加法的和
通过Bank.reduce(exp, ‘USD’)来将其转回Money类

13 完成预期目标

定义Expression子类Sum用以表示Money相加
Money与Expression分别添加reduce函数,为bank.reduce调用

14 变化

将bank作为参数传递给Money和Expression的reduce函数
bank提供rate函数用以提供汇率,提供addrate函数添加汇率

15 混合货币

将Money类一般化为Expression类,Expression中添加plus

16 抽象,最后的工作

完成所有代码

17 资金实例回顾

测试质量:

第二部分 xUint实例

18 步入xUnit

19 设置表格

20 后期整理

21 计数

22 失败处理

23 如何组成一组测试

24 xUnit回顾

第三部分 测试驱动开发的模式

25 测试驱动开发模式

26 不可运行状态模式

27 测试模式

28 可运行状态

29 xUnit模式

30 设计模式

31 重构

32 掌握TDD

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注