重构 - 4. 构筑测试体系
🏷️ 《重构》
第 4 章主要介绍了测试的价值以及一些测试实践方法。书中是以 JavaScript 为例的,.NET 开发人员可以参考 MSDN 上关于单元测试的文章。
确保所有测试都完全自动化,让它们检查自己的测试结果
一套测试就是一个强大的 bug 侦测器,能够大大缩减查找 bug 所需的时间。
总是确保测试不该通过时真的会失败。
作者的这个方法实践非常好。
编写测试时,确保每个测试都至少失败一遍。比如在代码中故意引入一个错误,让测试执行失败。
频繁地运行测试。对于你正在处理的代码,与其对应的测试至少每隔几分钟就要运行一次,每天至少运行一次所有的测试。
Visual Studio 的企业就支持在代码改动后自动运行测试,社区版不支持。
也可以配置 GitLab 的钩子,在每次推送时自动触发测试任务。
编写未臻完善的测试并经常运行,好过对完美测试的无尽等待。
考虑可能出错的边界条件,把测试火力集中在那儿。
这个属于测试用例的范畴。另外就是对于前端发送过来的所有数据都应持怀疑态度。
不要因为测试无法捕捉所有的 bug 就不写测试,因为测试的确可以捕捉到大多数的 bug。
每当你收到 bug 报告,请先写一个单元测试来暴露这个 bug。
引用
- 《重构:改善既有代码的设计》 -- 马丁·福勒(Martin Fowler)