IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> 如何在VectorCAST中测试可变参数函数? -> 正文阅读

[开发测试]如何在VectorCAST中测试可变参数函数?

测试可变参数函数
?
在对项目代码做单元测试时,有些函数可能是可变参数的函数,针对可变参数函数生成测试用例后,会发现参数树中只能找到固定的参数部分,可变参数部分无法输入参数。这是因为VectorCAST不能直接在参数树中显示出没有名称的参数,所以在测试用例设计界面中无法找到可变参数的部分。在这种情况下,如果需要测试可变参数函数,可以借助User Code来测试被测函数。
?
User Code是VectorCAST中很重要的一部分,而且功能十分强大,通过编辑User Code可以使得测试工作更容易进行,也可以通过User Code来拓展VectorCAST生成的测试套件的任何一部分,使用标准的C、C++语法,就可以方便地编辑User Code。
?
针对如下简单的示例代码,利用VectorCAST进行测试

首先创建测试环境,测试环境创建完成,对函数average函数做单元测试,打开测试用例设计界面后,我们只能看到参数num和return,可变参数部分因为没有显示在界面中,所以也不能直接设计输入值和期望。在这种情况下,就需要我们通过User Code编写对应数量参数的函数来调用被测函数,就可以满足测试可变参数函数的目的。到菜单Environment->User Code->Edit,打开User Code 界面,找到Unit Appendix User Code,展开后找到被测文件,双击空白区域,进入编辑状态,在此处定义不同参数数量的函数,调用被测可变参数函数:

完成后点击Test Compile按钮,测试编译,保存,重新构建环境。构建完成后可以在函数列表中看到新增的被测函数,对不同参数数量的函数创建测试用例,在界面输入参数,执行测试用例即可测试被测的可变参数函数。

打桩可变参数函数

?
在对项目代码做单元测试时,被测函数调用到了一些外部函数,这时需要对外部函数打桩,排除外部函数的干扰。打桩一方面可以对传递到桩函数中的参数设置期望值,验证传递参数是否正确;另一方面可以自定义桩返回值,返回一个自定义的值。某些情况下,被测函数调用的外部函数是可变参数的函数,但是对于可变参数打桩后只能看到固定参数的部分,可变参数部分因为没有参数名,所以无法直接在参数树中找到可变参数部分,也就不能直接设置桩函数参数的期望值。在这种情况下,可变参数部分也可以借助User Code来获取桩函数中可变参数的部分,实现验证可变参数部分的参数值。
?
到菜单Environment->User Code->Edit,打开User Code 界面,找到Unit Appendix User Code,展开后找到被测文件,双击空白区域,进入编辑状态,定义一个全局变量,用于存储可变参数的部分。在此处为了方便,定义了一个10元素的数组,用于存储可变参数的部分,这里需要根据实际代码,对User Code做出调整。

完成后点击Test Compile按钮,测试编译,保存。
?
到菜单Environment->Configure Stub->Edit,打开User Code编辑界面,找到需要打桩的外部函数,双击Beginning of stub,进入编辑状态,输入以下代码,这里的代码是将所有可变参数的部分赋值给全局变量average_param_list。

这里的User Code也需要根据实际代码情况,做出调整。完成后点击Test Compile按钮,测试编译,保存,重新构建环境。环境构建完成后,可以在测试用例设计界面,看到新增的全局变量,对外部函数打桩后,可以输入全局变量的期望值,执行测试用例,被测函数执行完成后,传递进桩函数的实际值值会自动和期望值做比较,如果相同,测试用例执行通过。

“原创内容,转载请标明出处”?

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-12-23 16:01:58  更:2021-12-23 16:02:04 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 4:48:49-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码