博客
关于我
什么是单元测试中的打桩
阅读量: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/

你可能感兴趣的文章
Python接口自动化测试企业级实战
查看>>
python中tkinter中value_输入字段中的python Tkinter get()值
查看>>
Python中wx.FlexGridSizer
查看>>
Python中xPath技术和BeautifulSoup的使用
查看>>
python中yield的用法详解——最简单,最清晰的解释
查看>>
python中‘set.intersection()‘的算法是什么?
查看>>
Python中一个图形中的多个绘图
查看>>
python中一个好的持久同步队列
查看>>
Python中不准确的对数
查看>>
python中什么是实例方法_在Python中创建实例方法对象的不同方法
查看>>
Python中使用cutecharts实现简单的手绘风格的图表
查看>>
python中使用dxfgrabber,解析dxf文件信息生成obj文件
查看>>
Python中使用ncmbot玩转网易云音乐
查看>>
Python中使用PIL快速实现二值图
查看>>
Python中使用PIL快速实现灰度图
查看>>
Python中使用pip install ncmbot时各种错误解决办法
查看>>
Python中使用requests和parsel爬取喜马拉雅电台音频
查看>>
Python中使用turtle绘制多个同心圆
查看>>
Python中使用turtle绘制棋盘详解
查看>>