重构-构筑测试体系
4.1 自测试代码的价值
编写代码其实只占非常小的一部分。有些时间用来决定下一步干什么,另外一些时间花在设计上,最多的时间则是用来调试。
类应该包含它们自己的测试代码。
确保所有测试都完全自动化,让它们检查自己的测试结果。
一套测试就是一个强大的bug侦测器,能够大大缩减查找bug所需要的时间。
编写测试代码其实就是在问自己:添加这个功能需要做些什么。编写测试代码还能使你把注意力集中于接口而非实现。
预先写好的测试代码也为你的工作安上一个明确的结束标志:一旦测试代码正常运行,工作就可以结束了。
4.2 Junit 测试框架
频繁地运行测试,每次编译请把测试也考虑进去-每天至少执行每个测试一次。
单元测试和功能测试。
当你收到bug报告,请先写一个单元测试来暴露bug。
4.3 添加更多测试
编写未至完善的测试并实际运行,好过对完美测试的无尽等待。
考虑可能出错的边界条件,把测试火力集中在那儿。
当事情被认为应该会出错时,别忘了检查是否抛出了预期的异常。
不要因为测试无法捕捉所有bug就不写测试,因为测试的确可以捕捉大多数bug。
参考资料:
《重构-改善既有代码的设计》