单元测试是针对代码单元的独立测试。要测试代码单元,首先要其使能够独立运行。项目中的代码具有依赖关系,例如,一个源文件可能直接或间接包含大量头文件,并调用众多其他源文件的代码,抽取其中的一个或一组源文件,一般是无法独立编译运行的。这就要用技术手段进行隔离,即将测试任务与其他代码隔离,必要时还要与依赖系统隔离。此外,并行开发过程中,边开发边测试,还需补齐尚未实现但需调用的代码。
1.与其他代码隔离
与其他代码隔离的一般方式是打桩,桩是用来代替实际代码的简单代码,打桩就是编写或生成桩代码。例如,函数A调用了函数B,函数B又调用了函数C和函数D,如果函数B用桩来代替,那么,函数A就可以完全切断与函数C和函数D的关系。
如果项目有1000个源文件,一位工程师负责测试其中50个,这50个源文件就是测试任务。是不是需要将其他950个源文件的代码都打桩呢?不是的。