桩模块和驱动模块
模块结构实例图:
假设现在项目组把任务分给了8个人,每个人负责实现一个模块。你负责的是M2模块,你很优秀,第一个完成了编码工作,现在需要开展单元测试工作,先分析结构图:
1、由于M2模块不是最顶层模块,所以它一定不包含main函数(A模块包含main函数),也就不能独立运行。
2、M2模块调用了M5模块和M6模块,而目前M5模块和M6模块都还没有开发好,那么想让M2模块通过编译器的编译也是不可能的。
那么怎样才能测试M2模块呢?需要做:
1、写两个模块Sd和Se分别代替M5模块和M6模块(函数名、返回值、传递的参数相同),这样M2模块就可以通过编译了。Sd模块和Se模块就是桩模块。
2、写一个模块Da用来代替M1模块,里面包含main函数,可以在main函数中调用M2模块,让M2模块运行起来。Da模块就是驱动模块。
知识点:
桩模块的使命除了使得程序能够编译通过之外,还需要模拟返回被代替的模块的各种可能返回值(什么时候返回什么值需要根据测试用例的情况来决定)。
驱动模块的使命就是根据测试用例的设计去调用被测试模块,并且判断被测试模块的返回值是否与测试用例的预期结果相符