《测试驱动开发 实战与模式解析》要点笔记

测试驱动开发的模式


“测试时间耗尽”式死循环 

隔离测试,使测试和顺序无关,测试之间一定不要互相干扰;可促进高内聚,低耦合的设计

开始之前编写一个测试列表并不停的更新

测试优先于代码,断言在测试中优先

测试数据要易读,易理解;要足够也不要冗余;现实世界中可以用真实的数据,有些场景应该使用真实数据

显示数据的使用可以使测试表达的意图更清晰,出现魔术字在单个方法范围内,魔术字的关系明确是可以使用魔术字的

红条模式

选具有指导意义,并且有信心能够实现的测试

先导测试:从测试一组不做任何事情的操作开始,你可以选择极容易发现的输入和输出来缩短循环周期

说明性测试:用测试用例来说明设计

学习测试:为外来的软件API编写测试,保证API如你预期

另外测试:离题的想法计入列表

回归测试:发现一个缺陷时,先编写一个不能通过的测试

休息:疲劳和判断相互间消极的影响

重新开始:

便宜的桌子,舒适的椅子

测试模式

子测试:将大型的测试划分为多个小的

模拟对象:鼓励你仔细考虑每一个对象的可见性,这在设计上降低了代码的耦合度。

自分流:请让测试对象与测试用例进行交互,而不是与我们所期望的对象进行交互(没看懂)

日志字符串:如何测试被调用的消息队列是正确的呢?请设置一个用来存储日志的字符串,当消息被调用时,便将记录追加到字符串后面

崩溃模拟测试:怎么测试不太可能被触发的错误码呢?请通过一个只怕抛出异常而不做任何实质工作的对象,使用任何方式来触发错误码

中断的测试:为了回到工作现场后,知道做到哪了

干净的签入:通过注释掉测试而使测试套件运行通过是严格禁止的。

绿条模式

伪实现

三角测量

显明实现

从一到多:如何实现一个用于对象集的操作呢?请现在去掉集合的情况下实现它,然后,再把集合加进去

xUnit下的模式

断言

定制器(setUp):

外部定制器(tearDown):无论测试方法运行期间发生了什么事情,teardown()方法都会被调用(如果setup方法运行失败,teardown就不会被调用了

测试方法:

异常测试:如何测试所欲知的异常?除非是由于没有抛出异常而失败,否则捕获这些异常然后忽略它们。

全部测试:如何一起执行所有测试?把所有测试套件组成一个大的套件

你可能感兴趣的:(《测试驱动开发 实战与模式解析》要点笔记)