《测试驱动开发》的读书笔记
《测试驱动开发》的读书笔记
学习基础:
熟悉《设计模式》的基本概念,熟悉《重构》的基本概念,熟悉基本的Java语法,熟悉Eclipse和JUnit的使用,有相对较好的英语基础。
学习过程:
- 第1部分,手工输入实例程序,了解TDD的方法和过程。重点是理解TDD的思路,最好的理解方式就是通过实践的方式理解。
- 第2部分,教你如何用Python实现一个符合xUnit的测试框架。
- 第3部分,TDD的模式,这些模式展现TDD如何与其他重要思想(例如:设计模式、重构等等)一起工作的。
学习目的:
编写正确的代码。
学习感悟:
- 道理很简单,操作也很简单,但是我仍然无法明了作者许多重构操作的意图,只是感觉作者可能是从直觉出发写出代码,再通过重构推进测试代码与产品代码之间的解耦。(知其然,不知其所以然)
- 可以先跳过第2部分,了解xUnit如何实现固然重要,但是为此变成先学Python就有点跑题了
- 还可以跳过第3部分,这部分都是作者从思想上对TDD的总结,俗话说“不吃亏不涨记性”,等自己在项目中吃够了亏再来回顾别人的经验,才会真正共鸣吧。
学习代码:
代码很简单,不需要再提供,反而最重要的是自己一定要手工跟一遍,否则无法领会作者的意图。至少,我在豆瓣上看了几个评论,大部分都是看懂了,没感觉。
测试驱动开发的规则
- (P4)明确设计目标,完善测试代码
- 消除重复设计即是消除依赖关系(测试代码与产品代码之间的依赖关系);
- 测试驱动开发不是通过一小步一小步来完成的,而是培养一小步一小步开发软件的能力。因为简单的问题可以走快点,复杂的问题就可以走慢点。
- (P12)完善产品代码
- 完成知道怎么做的产品代码;
- 补充不知道怎么做的产品伪代码。
- (P14)寻找隐含的开发目标,完善测试代码
- 利用三角法发现产品代码中的问题( 三角法:当例子不止1个的时候才完善代码。可以在没有设计思路的时候,换个角度思考问题)
- 利用重构解决发现的问题
- (P17)通过开发的功能来重构测试代码
- (P33)不打断自己已经在做的工作,如果非要打断也不要在新的工作中花太长的时间,并且不能再次打断这个新的工作。(事不过三)
- (P34)找到自己的开发节奏。(一开始慢一点,慢慢加快,再调整回慢,直到找到自己最合适的节奏感)
- (P42)删除不需要的子类,会发现测试代码中存在的不需要的测试也可以删除(放弃不需要的东西,会帮助你发现你还需要什么)
测试程序开发周期的阶段
- 写一个测试程序;
- 让测试程序编译通过;
- 运行测试程序,发现不能运行;
- 让测试程序可以运行;
- 消除重复设计,优化设计结构。