假设选择把一个项目分给7个人去完成,每人负责一个模块,你负责的是B模块,非常优秀,提前完成了代码的编写,接下来需要对B模块 进行单元测试。
先分析结构图:
1.由于B模块不是顶层模块,所以一定不包含main函数(A模块包含main模块),不能独立运行。
2.B模块调用了D模块和E模块,而目前D模块和E模块没有开发好,当然也是不能进行编译的。
怎样才能让B模块通过编译呢?
1.我们可以使用Sd和Se代替D模块和E模块(函数名、返回值、传递的参数相同),这样B模块就可以通过编译了。此时Sd和Se就是桩模块。
2.写一个Da用来代替A模块,里面包含main函数,可以在main函数中调用B模块,B模块就能运行起来。此时Da模块就是驱动模块。
知识点
桩模块除了使程序能够编译通过外,还需要模拟返回被代替的模块的各种可能返回值(什么时候返回什么样的返回值需要根据测试用例的情况来决定)。
驱动模块的使命就是根据被测试模块的用例去调用测试模块,并且判断被测试模块的返回值是否与测试用例相同。