再谈单元测试

曾写过多篇测试相关的文章,都源于每次测试给我带来的触动,这次也不例外,最近在重构复杂逻辑时,再次感谢它为我保驾护航,同时也发现了历史测试中存在的一些问题。

测试的意义

这是一个认知问题,如果不清楚为何要写测试,那么最终产生的测试大概率是腐烂、或无意义的。

  1. 保证代码的正确性,提升代码质量是它最高的使命。
  2. 保证代码的安全性/稳定性,当对某段代码改动后,测试会告诉哪些代码受到了潜在的问题。
  3. 可以指导写代码的思路,在测试驱动开发(TDD)体现尤为明显。
  4. 更能透彻的理解代码,很多情况下,写代码时常常会陷入自己的世界,从测试相当于站在旁观者的角度审视代码,从而提升可读性和扩展性。