第4章 构筑测试体系
要正确地进行重构,前提是得有一套稳固的测试集合。
修复bug通常是比较快的,但找出bug所在却是一场噩梦。
确保所有测试都完全自动化,让它们检查自己的测试结果。
总是确保测试不该通过时真的会失败。
频繁地运行测试。
测试应该是一种风险驱动的行为。测试的重点应该是那些我最担心出错的部分。
配置-检查-验证(setup-exercise-verify)、given-when-then、准备-行为-断言(arrange-act-assert)。
考虑可能出错的边界条件,把测试火力集中在那儿。
任何测试都不能证明一个程序没有bug,但测试可以提高编程速度。
一个架构的好坏,很大程度要取决于它的可测试性。
测试同样可能过犹不及。测试写得太多的一个征兆是,相比要改的代码,在测试上花费了更多的时间。