传统的单元测试包括了驱动模块(driver) 和桩模块(stub)。驱动模块的目的很单纯,就是为了访问类库的属性和方法,来检测类库的功能是否正确;

驱动模块

驱动模块是用来模拟被测试模块的上一级模块,相当于被测模块的主程序。它接收数据,将相关数据传送给被测模块,启用被测模块,并打印出相应的结果。

驱动模块(Driver)可以通过模拟一系列用户操作行为,比如选择用户界面上的某一个选项或者按下某个按钮等,自动调用被测试模块中的函数。驱动模块(Driver)设置,使对模块的测试不必与用户界面真正交互。

桩模块

桩模块是指模拟被测试的模块所调用的模块,而不是软件产品的组成的部分。主模块作为驱动模块,与之直接相连的模块用桩模块代替。在集成测试前要为被测模块编制一些模拟其下级模块功能的“替身”模块,以代替被测模块的接口,接受或传递被测模块的数据,这些专供测试用的“假”模块称为被测模块的桩模块。

如果被测试的单元模块需要调用其他模块中的功能或者函数(method),我们就应该设计一个和被调用模块名称相同的桩模块来模拟被调用模块。这个桩模块本身不执行任何功能仅在被调用时返回静态值来模拟被调用模块的行为。举例说明:如果被测试单元中需要调用另一个模块customer的函数 getCustomerAddress(customerID: Integer),这个函数应该查询数据库后返回某一个客户的地址。我们设计的同名桩模块(Stub)中的同名函数并没有真正对数据库进行查询而仅模拟了这个行为,直接返回了一个静态的地址例如"123 Newton Street"。桩模块的设置使得单元测试的进行成为一个相对独立且简单的过程。

总结:

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

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

驱动模块(driver) 和桩模块(stub)相关推荐

  1. 什么是桩模块?什么是驱动模块?

    一.桩模块 在软件测试中,桩模块是指一种占位符软件组件,用于代替外部系统.服务或对象,提供假设和预测的行为结果和异常反馈数据.通过对受控制和固定的程序输入产生预定输出,测试人员可以使用桩来检查单个系统 ...

  2. 什么是驱动模块?什么是桩模块?

    驱动模块:在大多数场合称为"主程序",它接收测试数据并将这些数据传送到被测试模块,单元测试一个函数单元时,被测单元本身是不能独立运行的,需要为其传送数据,为此写驱动 驱动模块要完成 ...

  3. 单元测试,驱动模块和桩模块的概念是什么?

    单元测试,驱动模块和桩模块的概念是什么? 关于单元测试初学者应该理解以下几个概念: 单元测试: 在底层进行的测试叫做单元测试,也叫做模块测试.当单元测试的bug修复后,再把模块组合在一起测试,这就是集 ...

  4. 15kw充电桩模块设计

    15kw充电桩模块设计,源代码,原理图,pcb 某达15kw充电桩模块,提供AD设计的电路图和pcb,源代码,并包括三相PFC程序参数变量的计算书. 2 .某默生15kw充电桩模块,提供源代码,PFC ...

  5. 天嵌科技——充电桩模块介绍

    充电桩模块方案结构图 产品特点: 方便易用:只需要开发应用程序即可,操作界面友好: 协议标准:采样国际推荐接口和BMS协议: 支付手段丰富:移动支付(app),IC 卡支付: 智能化:APP 定位,智 ...

  6. 15kw充电桩模块设计,源代码,原理图,pcb

    15kw充电桩模块设计,源代码,原理图,pcb 某达15kw充电桩模块,提供AD设计的电路图和pcb,源代码,并包括三相PFC程序参数变量的计算书. 2 .某默生15kw充电桩模块,PFC+DCDC双 ...

  7. 15kw充电桩模块设计,源代码

    15kw充电桩模块设计,源代码,原理图,pcb 某达15kw充电桩模块,提供AD设计的电路图和pcb,源代码,并包括三相PFC程序参数变量的计算书. 2 .某默生15kw充电桩模块,提供源代码,PFC ...

  8. 15kw充电桩模块设计,源代码,原理图

    其他15kw充电桩模块设计,源代码,原理图,pcb 某达15kw充电桩模块,提供AD设计的电路图和pcb,源代码,并包括三相PFC程序参数变量的计算书. 2 .某默生15kw充电桩模块,提供源代码,P ...

  9. 『软件工程12』软件工程实践方法——软件测试

    软件工程实践方法-- 软件测试 一.软件测试概述 1.软件测试的目的 (1)从用户和开发者角度 (2)Myers软件测试目的 2.软件测试的原则 3.软件测试的对象 4.测试信息流 5.测试与软件开发 ...

最新文章

  1. 使用CInternetSession和CHttpFile提取网页源码
  2. 数据库3(DBUtils)
  3. java动态变量名反射_Java动态性—反射 - Eclipse666的个人空间 - OSCHINA - 中文开源技术交流社区...
  4. SQL Server 2005存储过程示例
  5. VS2015 property manager
  6. ace缓存扩展接口_并不是只有 Redis 才可以做缓存
  7. 用rsync备份一台linux服务器上的数据
  8. win10 安装MASM32 遇到的问题DELETE operation of EXE file has failed
  9. 专利技术交底书撰写经历
  10. 平行云CEO 李岩:CloudXR ,开启通往元宇宙的通道
  11. 如何查看服务器登录日志文件,服务器登录日志查看
  12. 谷歌又放大招 Disco Diffusion!AI生成超高质量绘画!
  13. MySQL 异步查询提高查询速度
  14. 安装GPU版本的pytorch
  15. faster rcnn 代码与原理结合详解
  16. 【企业为什么要进行数字化转型】之数字时代新模式
  17. html怎么设置毛笔字体,三种实用的毛笔书法字体设计制作教程
  18. TwinCAT 3 气缸程序
  19. regsvr32 注册 ocx 时卡死,不退出
  20. 【vulhub靶场】medium_socnet

热门文章

  1. 神经网络:全连接神经网络
  2. 无源元件之——电阻器基础知识(超全)
  3. Vue 实例之全局API,实例属性,全局配置,组件进阶
  4. 三七互娱 Java游戏开发工程师 面试(两轮技术+HR面)
  5. 我的世界服务器start文本文档怎么输,我的世界1.12怎么用各种指令打出彩色字~ 经验告诉你该这样...
  6. vscode配置drawio绘制流程图
  7. 史上最大实体关系抽取数据集
  8. 个性化测试学生评测软件,团队项目(2+3):自动测试平台-- 需求文档
  9. java:深拷贝与浅拷贝
  10. Python简单实现邂逅在迷宫无限十连自动抽卡并根据金卡数量停止程序