《重构》读后感(第四章)

第四章:构筑测试体系。

PS:本章内容主要是通过一个JavaScript示例来讲解如何构筑测试体系。以下内容只总结一些心得和要点,具体如何构筑自己所用开发语言的测试体系,请自行了解。

要正确的进行重构,前提是得有一套稳固的测试集合,以帮我们发现难以避免的疏漏。

一、自测试代码的价值:
我们编写代码的时间仅占所有时间中很少的一部分。有些时间用来决定下一步干什么,有些时间花在设计上,但是花在测试上的时间是最多的。修复一个bug通常是比较快的,但是找出bug通常都比较难,越到后期,修改一个bug的时候越容易引起另一个bug,而我们又很难注意到它。一套测试就是一个强大的bug侦测器,能够大大缩减查找bug的时间。

二、 撰写测试代码的最好时间:
是在开始动手编码之前,因为编写测试代码其实就是问自己:我需要实现什么?

三、一些要点:
1、要频繁的运行测试,对于你正在处理的代码,与其对应的测试至少每隔几分钟就要运行一次,每天至少运行一遍所有的测试。
2、测试应该是一种风险驱动的行为,我测试的目的是希望找出现在或未来可能出现的bug。而测试的重点应该是那些我最担心的出错的部分,这样就能从测试工作中得到最大利益。
3、多考虑可能出错的边界条件,把测试火力集中在那里。
4、不要因为测试无法捕捉所有的bug就不写测试,因为测试的确可以捕捉到大多数bug。
5、编写未臻完善的测试并经常运行,好过对完美测试的无尽等待。除非很简单,不然我们很难一次就把测试写对,需要不断的完善它。
6、测试同样过犹不及,测试写的太多的一个征兆是:相比要改的代码,我在改动测试上花费更多时间。
7、如今一个框架的好坏,很大程度要取决于它的可测试性,这是一个好的行业趋势。