驱动模块和桩模块的概念和区别

Posted 做梦的人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了驱动模块和桩模块的概念和区别相关的知识,希望对你有一定的参考价值。

转:http://blog.csdn.net/xhf55555/article/details/6819010

桩模块和驱动模块(以C语言为例):

  很多人对桩模块和驱动模块的概念会搞不清楚,那么下面来介绍这两个概念:

  模块结构实例图:

技术分享

  假设现在项目组把任务分给了7个人,每个人负责实现一个模块。你负责的是B模块,你很优秀,第一个完成了编码工作,现在需要开展单元测试工作,先分析结构图:

  1、由于B模块不是最顶层模块,所以它一定不包含main函数(A模块包含main函数),也就不能独立运行。

  2、B模块调用了D模块和E模块,而目前D模块和E模块都还没有开发好,那么想让B模块通过编译器的编译也是不可能的。

  那么怎样才能测试B模块呢?需要做:

  1、写两个模块Sd和Se分别代替D模块和E模块(函数名、返回值、传递的参数相同),这样B模块就可以通过编译了。Sd模块和Se模块就是桩模块。

  2、写一个模块Da用来代替A模块,里面包含main函数,可以在main函数中调用B模块,让B模块运行起来。Da模块就是驱动模块。

  知识点:

  桩模块的使命除了使得程序能够编译通过之外,还需要模拟返回被代替的模块的各种可能返回值(什么时候返回什么值需要根据测试用例的情况来决定)。

  驱动模块的使命就是根据测试用例的设计去调用被测试模块,并且判断被测试模块的返回值是否与测试用例的预期结果相符

以上是关于驱动模块和桩模块的概念和区别的主要内容,如果未能解决你的问题,请参考以下文章

驱动编译进内核和编译模块的区别

驱动模块和装模块的概念——Junit单元测试案例

集成测试的几种策略

实时重载、热重载和热模块更换之间的概念区别是啥?

python库、包、模块概念辨析

linux设备驱动第二篇:构造和运行模块