从个人经历过的多个团队中,发现有一个共性是:极少有团队注重单元测试。甚至当我想在团队中倡导单元测试时,有个研发经理跟我表达单元测试没有任何意义的结论。我不知道这是个人的不幸呢,还是整个中国互联网公司的现状如此?
本文算是给单元测试”正名”,介绍单元测试的意义以及编写可测试代码的一些原则和思考。
什么是单元测试
单元测试是一段自动化的代码,这段代码调用被测试的工作单元,之后对这个单元的单个最终结果的某些假设进行检验。单元测试几乎都是用单元测试框架编写的。单元测试容易编写,能够快速运行。单元测试可靠、可读、并且可维护。只要产品代码不发生变化,单元测试的结果是稳定的。
工作单元是指从调用系统的一个公共方法到产生一个测试可见的最终结果,其间这个系统发生的行为总称为一个工作单元。一个单元可以小到只包含一个方法,也可以大到包括实现某个功能的多个类和函数。