欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 焦点 > TESSY创建需要手写桩的测试用例

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

2025/10/5 16:07:29 来源:https://blog.csdn.net/u012568663/article/details/142148110  浏览:    关键词: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中选中的函数先后顺序;

执行结果如下:

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词