3.2    单元测试的优点

  是一种验证行为

  不会出现项目进度的黑洞

  完成的功能都得到了验证

  不会出现产品不稳定的情况

  不用担心修改导致程序结构被破坏

  任何人都可以维护项目

  不用担心修改导致程序结构被破坏

  快速的定位问题

  通过运行单元测试定位问题

  不会出现难以为继的现象

  每一项功能都是测试来验证它的正确性

  是一种设计行为

  迫使我们从调用者角度考虑

  迫使我们把程序设计成为可调用和可测试的

  迫使我们接触模块之间的耦合

  是一种编写文档的行为

  一种无价的文档

  类或方法如何使用的佳文档

  文档是可编译、可运行的

  保持新永远与代码同步

  具有回归性

  单元测试用例可以随时运行

  单元测试用例可以做到自动化批量运行

  是我们的软件能够持续构建的基石

  注:3.1和3.2节参《单元测试的必要性和效益》

  3.3    不写单元测试的理由

  为了完成编码任务,没有足够的时间编写单元测试。编写单元测试会导致不能按时完成编码任务,推迟项目进度。

  单元测试的价值不高,完全是浪费时间。

  业务逻辑比较简单,不值得编写单元测试。

  不知道怎么编写单元测试。

  项目没有要求,所以不编写。

  在项目的前期还是尽量去编写单元测试,但是越到项目的后期越失控。

  3.4    总结

  在现代软件开发过程中,测试不再作为一个独立的生命周期。单元测试成为与编写代码同步进行的开发活动。单元测试能够提高程序员对程序的信心,保证程序的质量,加快软件开发速度,使程序易于维护。不管测试先行还是测试后行,没有单元测试那是不行的。

  注:3.3和3.4节参考袁光东在IT168上的文章《程序员为什么不写单元测试?