【回眸】Tessy 单元测试软件使用指南(三)怎么打桩和指针赋值和测试

news2024/11/28 20:59:01

目录

前言

Tessy 如何进行打桩操作

普通桩

高级桩

手写桩

Tessy单元测试之指针相关测试注意事项

 有类型的指针(非函数指针):

 有类型的函数指针:

 void 类型的指针:

结语

前言

进行单元测试之后,但凡稍微复杂一些的软件都难以避免需要在设置中遇到桩函数,今天就来记录一下如何在TESSY中使用桩函数。

首先介绍一下什么是桩函数:

桩函数(Stub)是模拟被测试模块所调用的模块。

桩,或称桩代码,是指用来代替关联代码或者未实现代码的代码。如果函数B用B1来代替,那么,B称为原函数,B1称为桩函数。打桩就是编写或生成桩代码。

Tessy 如何进行打桩操作

在tessy里如何给外部函数进行打桩呢?

首先需要按照正常流程进行分析函数,函数分析没有问题之后再打开TIE,这里可以看到函数里有用到的外部函数,内圈是白色说明该函数虽然使用到了,但是却没有打桩,如果返回值是void型,直接右击点击 Create Stub (for current Testobject),如果返回值非void型,需要右键点击 Create advanced Stub(for current Testobject)

要注意的是, Create Stub 之后不需要设置passing和target passing,Create Advanced Stub 之后需要设置passing和target passing,默认的passing和target passing很可能不正确。

普通桩


1)函数没有返回值没有形参,可以打普通桩
2) 如果函数不影响后续实现以及变量,可以打普通桩
3) 如果函数本身有返回值但并不使用,可以打普通桩
4) 函数有形参,但不观测可以打普通桩

例如:

extern void STUB_1();
extern hirain_u8 STUB_2();
static hirain_u8 STUB_3(hairain_u8 temp){return temp*temp;};

void test_fun_stub_1(void){


            STUB_1();

}

STUB_1()
在当前 c 文件中没有定义,直接执行会报未定义错误

要对该函数打普通桩

高级桩


1) 如果用到函数返回值,需要打高级桩,手动控制其返回值
2) 如果函数有形参,并且需要接口传参检测,需要打高级桩

extern void STUB_1();
extern hirain_u8 STUB_2();
static hirain_u8 STUB_3(hairain_u8 temp){return temp*temp;};

hirain_u8 test_fun_stub_2(void){


            hirain_u8 temp = STUB_2();
            return temp;

}

被测函数中用到了STUB_ 2 函数的返回值, 打普通桩 会报以下错误:

所以需要打高级桩,在TDE 界面中设置函数调用预期返回值。

例如:

extern void STUB_1();
extern hirain_u8 STUB_2();
static hirain_u8 STUB_3(hairain_u8 temp){return temp*temp;};

hirain_u8 test_fun_stub_4(hirain_u8 temp){
            hirain_u8 trm = STUB_3(temp);
            return tem;

}

对STUB_3() 函数进行传参检测,需要给该函数打高级桩,第一个接口为返回值,
其余 为形参接口

手写桩


如果需要让桩函数有额外的功能(传参检测、局部数据处理、多传参检测、函数
实现变更等) 可以进行手写桩:

hirain_u8 loop_test3(hirain_u8 temp){

        for(hirain_u8 i = 0;i<temp;i++){
                        STUB_3(i);
        }
        return 1;
}

想要获取每次函数被调用获取的值,可以创建普通桩,新建变量,然后手写桩函
数完成传参记录。

Tessy单元测试之指针相关测试注意事项

 有类型的指针(非函数指针):

构建 合适 的对象 ,将地址传入指针接口。
例如:

hirain_u8 a;
void TS_FUN_PON_2(hirain_u8 *p,STR *pl)
{
        
           a = *p;
           pl->str2 = pl->strl;



}

 首先进入TIE界面查看passing 和target passing,不能设置的有冲突

 接着回到TED,选择需要赋值的指针,在表格处右键 Create Pointer Target Value

创建完指针变量之后需要在 Dynamics里给指针变量赋值

 有类型的函数指针:

构建与指针类型相同的函数对象,将地址传入指针接口
在 Declarations /Definition 模块写函数的声明和定义 。

例如:

hirain_u32(*T_pon)(hirain_u32 i);
hirain_u32 hirain_stuv(hirain_u32 temp){

            temp = (*T_pon)(temp);
            return temp;
}

 void 类型的指针:

需要新建一个有类型的全局变量,然后将指针 指向该变量,
将变量地址传入指针接口。

例如:

hirain_u8 TS_FUN_PON_1(int *p,void *p1)
{

    hirain_u8 temp = 0;
    int *temp1 = p1;
    a = *p;
    return *temp1;

}

新建一个变量且命名

 在TED界面赋值

结语

本文介绍了当使用Tessy对软件进行单元测试时如何打桩和指针相关测试的注意事项及操作要点,希望能给正在摸索Tessy的网友一点点启发。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1562381.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

css-盒子阴影

1.box-shadow: 10px 20px 10px 10px blue; 参数对应顺序&#xff1a;上下&#xff0c;左右 &#xff0c;模糊程度&#xff0c;颜色 &#xff0c;阴影大小 2.box-shadow: 10px 20px 10px 20px blue,-10px -20px 10px 50px red; 负号就是相反方向 支持多个阴影 在后面加逗号 3…

dockerfile制作-pytoch+深度学习环境版

你好你好&#xff01; 以下内容仅为当前认识&#xff0c;可能有不足之处&#xff0c;欢迎讨论&#xff01; 文章目录 文档内容docker相关术语docker常用命令容器常用命令根据dockerfile创建容器dokerfile文件内容 docker问题&#xff1a;可能的原因和解决方法示例修改修改后的D…

谷粒商城——通过接口幂等性防止重复提交订单

如果用户向后端服务提交多次相同订单的提交服务&#xff0c;那么后端应该只生成一条订单记录。 有一些操作天然是幂等的&#xff0c;如查询操作和删除操作等。 幂等性实现 1.token机制&#xff08;仅这个方法适用于订单的重复提交&#xff09; 后端先生成1个令牌将其记录在R…

MATLAB绘制堆叠填充图--巧用句柄

MATLAB绘制堆叠填充图–巧用句柄 目录 MATLAB绘制堆叠填充图--巧用句柄1. 主要原理讲解1.1 主要函数1.2 句柄原理 2. 绘图示例2.1 准备数据2.2 绘制堆叠填充图-使用句柄控制图形属性2.3 设置填充颜色和样式2.4 添加标题和标签2.5 绘图效果 3. 结语 堆叠填充图是一种常见的数据可…

【2024年5月备考新增】《2024高项论文精华版(3)考试技巧》

3 考试技巧 3.1 考试难度 考试难度上&#xff0c;越是常见的题目、越是被大家预测的题目&#xff0c;阅卷就会更严格。 越是大家猜测不到的&#xff0c;越是小众的题目&#xff0c;阅卷严格程度就会低。 3.2 技巧 1、记住软考论文的目的&#xff0c;不是为了证明你的格式严谨…

中科驭数超低时延网络解决方案入选2023年度金融信创优秀解决方案

近日&#xff0c;由中国人民银行领导、中国金融电子化集团有限公司牵头组建的金融信创生态实验室发布「2023年度第三期金融信创优秀解决方案」&#xff0c;中科驭数超低时延网络解决方案从众多方案中脱颖而出&#xff0c;成功入选&#xff0c;代表了该方案的技术创新和金融实践…

使用plasmo开发浏览器插件在网页指定位置添加自定义UI

使用plasmo开发浏览器插件的时候&#xff0c;有时候需要在指定网站的指定页面添加自定义的UI内容&#xff0c;如果通过content.js内容脚本去通过js创建的话&#xff0c;可就太麻烦了&#xff0c;要写不少的js代码。不过plasmo已经帮我们实现了这个功能&#xff0c;就是Content …

安全防御产品—锐安盾重磅上线,助力更安全、更流畅的业务体验

在互联网时代&#xff0c;互联网技术蓬勃发展&#xff0c;然而&#xff0c;随之而来的网络安全问题也备受关注。诸如DDoS攻击、CC攻击、常见Web攻击等攻击手段突如其来&#xff0c;导致企业业务中断&#xff0c;严重影响企业业务正常运行。对此&#xff0c;锐成云重磅推出安全防…

分布式全闪占比剧增 152%,2023 年企业存储市场报告发布

近日&#xff0c;IDC 发布了 2023 年度的中国存储市场报告。根据该报告&#xff0c;在 2023 年软件定义存储的市场占比进一步扩大&#xff0c;分布式全闪的增长尤其亮眼&#xff0c;其市场份额从 2022 年的 7% 剧增到 2023 年的 17.7%&#xff0c;增长了 152%。 01 中国企业存…

提升LLM效果的几种简单方法

其实这个文章想写很久了&#xff0c;最近一直在做大模型相关的产品&#xff0c;经过和团队成员一段时间的摸索&#xff0c;对大模型知识库做一下相关的认知和总结。希望最终形成一个系列。 对于知识库问答&#xff0c;现在有两种方案&#xff0c;一种基于llamaindex&#xff0…

绝地求生:[更新周报] 4/3 不停机更新:无上新、众多物品和活动即将下架!

大家好&#xff0c;我闲游盒&#xff1b;本周三4月3号&#xff0c;绝地求生不会有停机时间&#xff0c;大家可以随便玩~ ▲本周可选地图池 亚服/东南亚服&#xff1a;艾伦格、荣都、萨诺、米拉玛、帕拉莫&#xff1b; 日服/韩服KAKAO服&#xff1a;艾伦格、泰戈、萨诺、荣都、…

​港中文提出CLongEval中文基准测试集,准确评估大模型长上下文能力

论文题目&#xff1a; ClongEval: A Chinese Benchmark for Evaluating Long-Context Large Language Models 论文地址&#xff1a; https://arxiv.org/abs/2403.03514 代码地址&#xff1a; https://github.com/zexuanqiu/CLongEval 研究背景和贡献 为了使 LLM 能够支持更复杂…

STM32学习笔记(9_2)- USART串口外设

无人问津也好&#xff0c;技不如人也罢&#xff0c;都应静下心来&#xff0c;去做该做的事。 最近在学STM32&#xff0c;所以也开贴记录一下主要内容&#xff0c;省的过目即忘。视频教程为江科大&#xff08;改名江协科技&#xff09;&#xff0c;网站jiangxiekeji.com 在STM3…

ES-7.12-官网阅读-ILM-自定义内置ILM策略

官网地址&#xff1a;Tutorial: Customize built-in ILM policies | Elasticsearch Guide [7.12] | Elastic 教程&#xff1a;自定义内置ILM策略&#xff08;Customize built-in ILM policies&#xff09; Elasticsearch包含如下内建ILM 策略&#xff1a; logs&#xff08;日…

【项目技术介绍篇】若依项目代码文件结构介绍

作者介绍&#xff1a;本人笔名姑苏老陈&#xff0c;从事JAVA开发工作十多年了&#xff0c;带过大学刚毕业的实习生&#xff0c;也带过技术团队。最近有个朋友的表弟&#xff0c;马上要大学毕业了&#xff0c;想从事JAVA开发工作&#xff0c;但不知道从何处入手。于是&#xff0…

数据可视化高级技术(Echarts)

目录 &#xff08;一&#xff09;数据可视化概念及Echarts基础知识 数据可视化的好处&#xff1a; 数据可视化的目标 数据可视化的基本流程 &#xff08;二&#xff09;数据图表 类别比较图表&#xff1a; 数据关系图表&#xff1a; 数据分布图表&#xff1a; 时间序列…

增加网站搜索引擎排名的6个准则

怎样提高网站排名首页 在竞争激烈的网络世界中&#xff0c;网站的排名对于吸引流量和提升曝光至关重要。登上搜索引擎结果页面的首页&#xff0c;意味着更多的曝光和点击率。以下是一些方法&#xff0c;可以帮助您提高网站在搜索引擎中的排名&#xff0c;让其跻身首页&#xf…

基于STC12C5A60S2系列1T 8051单片机的数码管显示IIC总线器件AT24C02记录单片机上电次数应用

基于STC12C5A60S2系列1T 8051单片机的数码管显示IIC总线器件AT24C02记录单片机上电次数应用 STC12C5A60S2系列1T 8051单片机管脚图STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式及配置STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式介绍液晶显示器LCD1602简单介绍…

Vmware虚拟机远程SSH连接失效解决方法及分析过程

问题描述 系统为CentOS7 64位 一向能够正常连接 在某次使用FinalShell进行远程SSH连接时 突然无法连接 对问题原因猜测及尝试 1.dns解析失效 发现显示DNS无法解析,可以得知是使用了主机名登录,而主机名无法登录. 遂查看host文件.host文件因不知名原因被清空,重新恢复后该问…

每天五分钟计算机视觉:如何基于滑动窗口技术完成目标的检测?

汽车检测算法 现在我们想要构建一个汽车检测算法,我们希望输入到算法中一张图片,算法就可以帮助我们检测出这张图片中是否有汽车。 数据集 首先创建一个标签训练集,x是样本,y是标签。我们的训练集最好是被剪切过的图片,剪掉汽车以外的部分,使汽车居于中间位置,就是整张…