TESSY创建需要手写桩的测试用例

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

我们以tessy5.1 IDE为例,给大家展示编写一个需要手写桩的测试用例过程。

1、前期的准备工作

可以参考以下文章:

TESSY创建单元测试或集成测试工程_tessy做单元测试-CSDN博客

TESSY创建以及设计一个测试用例-CSDN博客

接下来我们以这个作为开始状态进行介绍

2、、源码分析
复制代码
static bool runner_control(uint8_t addr)
{
	 uint8_t res = 1u;
	 uint8_t wdata[2]={0x00,0x00};
	 bool result = false;
	 
   if (0u == addr){
      result = false;
   }
   else
   {
   	  res = door_open_pro(addr,&wdata,1);
   	  if(0u == res){
   	  	res = door_open_pro(addr,&wdata,2);
   	  	if((0u == res)&&(0xAA == wdata[0])){
   	  		res = door_open_pro(addr,&wdata,3);
   	  		if((0u == res)&&(0x55 == wdata[1])){
   	  			 door_open();
   	  			 result = true;
   	  		}
   	  	}
   	  }
   }
   return result;
}

看到执行过程中,需要根据door_open_pro的返回的状态以及wdata的值来进行处理,因此需要我们通过手写桩来完成测试。

2、 创建用例
2.1 创建普通桩
2.2 创建用例

创建用例后,在用例中填入数据,执行分析、运行用例,发现提示如下错误。

提示我们桩函数没有实现,在TDE界面下可以看到如下提示:

2.3、手写桩代码

我们可以 在stub code输入框中编写如下代码,在执行一下用例,发现OK了。

为什么需要我们手写如下这一行代码呢,因为函数中用到了这个door_open_pro的返回值。

复制代码
return 1;

但是为了执行到door_open();这个函数,那就需要写一个稍微复杂的桩代码了,如下:

复制代码
static cnt = 0;

cnt++;

if(1 == cnt){
  return 0;
}else if(2 == cnt){
  pdata[0] = 0xAA;
  return 0;
}else if(3 == cnt){
  pdata[1] = 0x55;
  return 0;
}

执行结果如下:

2.4 增加调用追踪

怎么直观的判定桩函数使测试的代码按照预期的逻辑执行呢?

我们可以增加调用追踪,步骤如下:

1、选择Call Trace;

2、选择执行的函数;

3、函数的位置操作,通过 (左移)或(右移),选中的函数就可以从Available Functions中移入Expected Calls或从Expected Calls移除到Available Functions ,通过(上移)、(下移),可以移动Expected Calls中选中的函数先后顺序;

执行结果如下:

相关推荐
程序员三藏36 分钟前
如何使用Jmeter进行压力测试?
自动化测试·软件测试·python·测试工具·jmeter·测试用例·压力测试
chao_7893 小时前
针对“仅某个地区出现Bug”的原因分析与解决方案
测试用例·bug
互联网杂货铺12 小时前
完美搭建appium自动化环境
自动化测试·软件测试·python·测试工具·职场和发展·appium·测试用例
测试老哥18 小时前
Jmeter如何进行多服务器远程测试?
自动化测试·软件测试·功能测试·测试工具·jmeter·测试用例·性能测试
程序员杰哥1 天前
Postman常见问题及解决方法
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·postman
blues_C1 天前
十三、【核心功能篇】测试计划管理:组织和编排测试用例
vue.js·django·测试用例·drf·测试平台
阿尔帕兹2 天前
测试用例及黑盒测试方法
测试用例
程序员杰哥2 天前
接口自动化测试之pytest 运行方式及前置后置封装
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·pytest
天才测试猿3 天前
接口自动化测试之pytest接口关联框架封装
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·pytest