博客
关于我
什么是单元测试中的打桩
阅读量:737 次
发布时间:2019-03-21

本文共 996 字,大约阅读时间需要 3 分钟。

桩代码(Stubbing)是软件开发中用于替代关联代码或未实现代码的技术。具体而言,当函数B使用B1来代替,那么B就是原函数,而B1称为桩函数。编写或生成桩代码的过程称为打桩(Stubby)。

打桩的目的

打桩的主要目的包括隔离、补齐和控制。

  • 隔离:通过将测试任务与产品项目分离,确保测试任务能独立编译、链接并运行。例如,若函数A调用了函数B,函数B再调用了函数C和D,若用桩代替函数B,那么函数A就与函数C、D无关,从而实现隔离。
  • 补齐:用桩替代未实现的代码。在并行开发中尤为常见,例如函数A调用了函数B,而函数B尚未开发完成时,可以用桩替代B,使A能够运行并测试。
  • 控制:在测试中人为设定代码行为,以满足测试需求。例如,当函数B返回随机数、网络状态或环境温度时,可以用桩函数代替B,使其返回特定测试所需的数据。

以下是一个桩函数的示例:

int GetTemperature(int* pTemperature) {    if (caseNameIs("failed")) {        return 0;    }    if (caseNameIs("ok-23")) {        *pTemperature = 23;        return 1;    }    if (caseNameIs("ok-25")) {        *pTemperature = 25;        return 1;    }    if (caseNameIs("ok-28")) {        *pTemperature = 28;        return 1;    }    return 0;}

其中,caseNameIs()是由测试工具提供的API,用于判断用例名称,进而决定输出数据。

编写桩函数

一般来说,桩函数需要与原函数保持完全一致,只是实现不同,以便测试代码能够正确链接到桩函数。用于实现隔离和补齐的桩函数通常很简单,即将原函数声明拷贝过来,并添加一个空实现。

然而,实现控制功能的桩函数可能会更复杂,要根据测试需求输出合适的数据。例如,上述的GetTemperature函数不仅实现了隔离和补齐,还通过测试工具控制输出特定温度值。

总之,打桩是一种有效的测试工具,能够帮助开发者在测试过程中隔离、补齐或控制相关代码,从而提高测试效率和代码质量。

转载地址:http://cefrz.baihongyu.com/

你可能感兴趣的文章
mysql select, from ,join ,on ,where groupby,having ,order by limit的执行顺序和书写顺序
查看>>
MySQL Server 5.5安装记录
查看>>
mysql server has gone away
查看>>
mysql slave 停了_slave 停止。求解决方法
查看>>
MySQL SQL 优化指南:主键、ORDER BY、GROUP BY 和 UPDATE 优化详解
查看>>
MYSQL sql语句针对数据记录时间范围查询的效率对比
查看>>
mysql sum 没返回,如果没有找到任何值,我如何在MySQL中获得SUM函数以返回'0'?
查看>>
mysql Timestamp时间隔了8小时
查看>>
Mysql tinyint(1)与tinyint(4)的区别
查看>>
mysql union orderby 无效
查看>>
mysql v$session_Oracle 进程查看v$session
查看>>
mysql where中如何判断不为空
查看>>
MySQL Workbench 使用手册:从入门到精通
查看>>
mysql workbench6.3.5_MySQL Workbench
查看>>
MySQL Workbench安装教程以及菜单汉化
查看>>
MySQL Xtrabackup 安装、备份、恢复
查看>>
mysql [Err] 1436 - Thread stack overrun: 129464 bytes used of a 286720 byte stack, and 160000 bytes
查看>>
MySQL _ MySQL常用操作
查看>>
MySQL – 导出数据成csv
查看>>
MySQL —— 在CentOS9下安装MySQL
查看>>