吐槽

许多开发人员,没有写单元测试(unit test)的习惯,甚至项目中保持干净的0单测

部分公司会要求员工写单测,许多人也是在功能开发完成后再单测

如果你是这些人中的一员,那么朋友,你只是个低级程序员,俗称码农

更有甚者,写一些几乎没有意义的单测,以骗过单测统计系统

这。。。没什么好说的了

合理解决方案

你要做的

  • 学习掌握单元测试框架使用方法,通常都非常简单,java使用JUnit,python、ruby等脚本语言也都内置了单测类库

  • 尝试在开发的过程中编写单测,你可以写完一两个方法,立即补上一个单测,运行通过后再开始编写下一个方法

### 你应该理解的

  • 及时编写单测,能够让你在第一时间发现错误,并在短短数分钟之内进行修复。越及时,越能降低你的开发耗时

  • 通过足够的单测覆盖,你可能做到在项目提测后,bug数为0

  • 写单测如同写实现代码,你同样应当遵循DRY原则,不应该存在代码重复。许多表面上技术还不错的开发者,写的单测代码冗余至极。只能说,还是功力有限

  • 没有单测覆盖的代码,很少有人愿意来帮助改善你的代码

  • 单测应该是没有上下文依赖,可独立运行

    如果你依赖数据库,你应该用内存数据库替代

    如果你依赖后台服务,你应该在上层就mock掉;如果你觉得真有必要,你也可以费力编写一个mock server服务,运行单测时自动启动

  • 单测不能依赖前后执行顺序,随时都应当可以执行任何一个或一批单测方法