为什么要写单元测试

软件质量最简单、最有效的保证; 是目标代码最清晰、最有效的文档; 可以优化目标代码的设计; 是代码重构的保障; 是回归测试和持续集成的基石。


写单元测试,有时候确实可以发现bug,但是发现bug次数很少,而且目前都是项目开发完了,要上线了,公司有80%的覆盖率要求,所以都是后期上线之前补。目前而言,并没有在很认真地写UT,只是想着完成上线要求。这个东西吧,也是看成本要求,如果一个新项目要紧急上线,走紧急发布特殊流程,单元测试后期时间充裕了再补上也行。所以,在时间允许情况下,我觉得还是要写UT,做了有时候确实能发现一些问题,尤其对于一个大的项目来说,一个 bug 被隐藏的时间越长,修复这个 bug 的代价就越大。在《快速软件开发》一书中已引用了大量的研究数据指出:最后才修改一个 bug 的代价是在 bug 产生时修改它的代价的10倍。此外,还能学到一些单元测试的知识,也算是一种技能上的进步吧。

目前应用比较普遍的java单元测试工具 junit+Mock(Mockito /jmock / powermock)