1、什么是单元测试?
工厂在组装一台电视机前,会先测试所有元器件,与此类似,软件开发过程中也要对各个代码单元进行单独的隔离的测试,这就是单元测试。
"代码单元"一般是指类或函数,流行的看法是以类为"单元",但在实际工作中,以类为测试单元并不实用,即使是比较简单的类,例如只有三五个成员变量、十几个成员函数的类,如果作为一个整体来测试,做起来也过于复杂,因此,本文主张以函数为测试单元。
2、单元测试的必要性
缺少单元测试是项目质量不符要求,工期超时,预算超支的主要原因之一。如果缺少单元测试,编码完成后看到的往往不是胜利的曙光,而是噩梦般的泥潭。不说别的,仅仅"对代码的修改很可能会引入新的错误"这一点,就足于导致项目失败。
缺少单元测试,代码就会遗留大量的细小的错误,集成后就算能把这些错误找出来,总要修改吧?这就可能陷入修改,引入新的错误,测试,再修改,再引入新的错误的怪圈。
需求的变化几乎是不可避免的,因为很多功能都是做出来、试用过才知道有没有用、好不好用。需求的变化必然导致大范围的代码修改,于是又可能陷入修改,引入新的错误,测试,再修改,再引入新的错误的怪圈。
有了单元测试,情况就完全不同,首先单元测试使代码中的错误减至最少