1. 重构的"安全网"(safety net)中测试覆盖是重构的基石
为什么说测试覆盖是重构的"安全网"(safety net)?它是如何成为重构基石的?
- 安全网的定义与价值
- 测试覆盖如何保障行为不变
- 安全网与重构信心
测试覆盖是重构的"安全网",指它能在重构改变行为时及时报警,让开发者敢于重构。重构的铁律是"行为不变",而测试正是验证"行为不变"的手段:重构前测试全绿,重构中每步跑测试,一旦某个测试变红,就说明这一步改变了行为,可立即定位并纠正。没有测试覆盖,重构就是"盲改",风险高、不敢动。因此覆盖率是重构的基石,覆盖越充分,重构越安全、越放心。
安全网解决了重构最大的心理障碍——"改坏了怎么办"。有了测试,重构可以小步、快速、频繁验证,因为每次失败都能被定位。安全网越厚(覆盖越全、断言越强),重构自由度越大。这也是"测试先行"和"特征测试"在重构中被反复强调的原因。