代码实验室:C语言 代码测试 之 系统函数打桩 您所在的位置:网站首页 函数打桩和清桩 代码实验室:C语言 代码测试 之 系统函数打桩

代码实验室:C语言 代码测试 之 系统函数打桩

2024-07-04 07:01| 来源: 网络整理| 查看: 265

有时单元测试的时候,遇到系统函数,也可以进行打桩,来测试不同的的代码分支 我们这次来讲解如何 对系统函数malloc进行打桩。 使用ctestcode工具 ,系统函数打桩只需要做如下的设置,这样malloc的桩就设置好了

[auto_mock] _MOCK_malloc [real_mock] malloc

被测试代码如下,其中一个分支,只有malloc返回NULL时,才会运行到。

void * test1(int size) { #define TEXT "hello world\n" void *p=malloc(size); if (p) { memcpy(p,TEXT,sizeof(TEXT)); } if (p) { printf("%s",p); }else { printf("NG\n"); } return p; }

测试异常分支,malloc 返回NULL的情况。

ON_CALL(_mock,malloc) .WillByDefault(Return(nullptr));

测试正常分支,使用MOCK_OFF关闭桩函数。

TEST_F(THE_UNIT, test1_UT_case1_MOCK_ON_OFF) { ON_CALL(_mock,malloc) .WillByDefault(Return(nullptr)); MOCK_ON(malloc); test1(20); MOCK_OFF(malloc); test1(20); }

最后所有分支也轻松测试完成。

[ RUN ] hello_mock.test1_UT_case1_MOCK_ON_OFF NG hello world [ OK ] hello_mock.test1_UT_case1_MOCK_ON_OFF (0 ms) 命中[ 8 ]总行数[ 8 ]覆盖率[100.0%]

本例中,所有的代码已经全部准备好了,只需要下载  C语言编码助手 ,直接导入,就可以进行实验,学习和验证。

代码实验室:系统函数打桩源代码下载, 复制到浏览器直接下载ctestcode.cn/test/211003_hello_mock.ctestcode C语言编码助手下载地址 v1.37win10 x64 版本下载ctestcode.cn/ctestcode_win10.ziplinux x64 版本下载ctestcode.cn/ctestcode_linux_x64.zip



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有