如何使用Google Test测试C的静态功能

拉链

我有一个包含一些静态函数的C文件,如何使用Google Test来测试那些静态函数?

头文件:

test.h
int accessData();

源文件:

test.c
static int value;
static int getData()
{
   return value;
}

int accessData()
{
    if(value != 0)
    {
       return getData();
    }
    return 0;
}

静态函数由全局函数调用,但是如何使用Google测试来测试那些静态函数呢?

托比·斯皮特(Toby Speight)

实现此目的的一种方法是#include将C源文件放入您的测试源中。然后,该static函数与测试代码是同一转换单元的一部分,可以从中调用函数:

#include "test.c"

/* here follow the tests of getData() */

不利的一面是,其中的所有内容test.c都会重新编译,这对构建时间有明显的影响。如果这成为问题,则可以考虑将要测试的静态函数提取到它们自己的源文件中(例如test_p.c,具有_pprivate / internal含义)。然后#include "test_p.c"从两者test.c和您的单元测试。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用 google test 对 gRPC 异步 C++ 客户端功能进行单元测试

如何使用C ++“功能测试宏”?

如何测试C ++的功能支持?

使用断言C ++测试功能

如何使用C#6“使用静态”功能?

如何通过静态调用对功能进行单元测试

如何测试使用存储上传触发的Google云功能?

如何在Xcode 6.1.1中使用Google Test运行本地C ++单元测试

如何使用Google Test测试实现接口的不同类/结构?

如何在终端上使用C代码运行Google测试?

如何使用 cmd 部署 google firebase 功能?

无法弄清楚如何使用redux-saga-test-plan测试redux-saga功能

如何使用Google Test捕获细分错误?

在单元测试期间如何跳过Fluent验证静态功能?

文件外部是否可以使用C静态功能?

如何在匿名名称空间中使用带有免费功能的Google测试?

如何在静态功能中使用模板?

如何使用将静态成员方法作为参数的 [Theory] 标记进行 C# XUnit 测试?

在C#中,使用ILogger对静态方法进行单元测试的静态方法ILoggerFactory为空

使用Google Test测试Map <int,vector>

如何在Google Test(gtest)中使用夹具成员值运行参数化测试?

如何使用Google Test在main()函数中的特定位置调用特定的测试函数?

如何使用C#填写Google表单

Google Test独立项目-如何使测试针对C ++项目运行

用C ++编写Gameboy模拟器,如何测试操作码(Google Test Framework)?

我如何使用Google测试框架测试void方法

如何正确使用带有传单的Google Maps静态图块

如何使用输入调用测试功能?

如何使用回调测试功能?