代码实验室:C语言 代码测试 之 系统函数打桩 | 您所在的位置:网站首页 › 函数打桩和清桩 › 代码实验室:C语言 代码测试 之 系统函数打桩 |
有时单元测试的时候,遇到系统函数,也可以进行打桩,来测试不同的的代码分支 我们这次来讲解如何 对系统函数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 实验室设备网 版权所有 |