关于测试
测试都包括哪些
广义的测试包括UT、IT、压力测试、硬件测试等等,这里重点讨论Unit Test即单元测试。
啥是UT
单元测试(又称为模块测试, Unit Testing)是针对程序模块(软件设计的最小单位)来进行正确性检验的测试工作。程序单元是应用的最小可测试部件。在过程化编程中,一个单元就是单个程序、函数、过程等;对于面向对象编程,最小单元就是方法,包括基类(超类)、抽象类、或者派生类(子类)中的方法。
简而言之就是覆盖你的代码的一些测试用例,不依赖于任何第三方的服务依赖,如HTTP接口、数据库连接等,只测试功能不依赖于环境,在任何时候人和机器上都可以Pass。
为什么要写UT
让你的代码质量更可靠&让你对代码结构更加敏感&迫使你写更优质的代码&…
为什么不写UT
!${为什么要写UT}
什么在阻止你写UT
代码本身的原因
如果代码复杂度较高还缺少必要的抽象和拆分,就会让人对写UT望而生畏。
编码工作量的原因
无论是用什么样的单元测试框架,最后写出来的单元测试代码量也比业务代码只多不少,在不作弊的前提下要保证相关的测试覆盖率,大概要三倍源码左右的工作量。
难以维护的原因
更多的代码量,加上单测代码并不像业务代码那样直观,还有对单测代码可读性不重视的坏习惯,导致最终呈现出来的单测代码难以阅读,要维护更是难上加难。
合格的UT什么样
至少要满足:
测试的是一个代码单元内部的逻辑,而不是各模块之间的交互。
无依赖,不需要实