c++ - 是否可以使用预处理器或编译器从头文件创建 stub ?

标签 c++ unit-testing preprocessor

当我用 C++ 编写单元测试时,通常需要创建一些自由函数的 stub 方法定义,这些函数在头文件 actions.h 中声明:

#ifdef __cplusplus
extern "C" {
#endif
void action1(void);
void action2(void);
int action3(void);
#ifdef __cplusplus
}
#endif

而不是在单独的文件中创建 stub

void action1() {}
void action2() {}
int action3() { return 0; }

当包含此 header 时,在测试代码中动态定义 stub 会很方便:

create_stubs(#include <actions.h>)

最佳答案

Is it possible to use the preprocessor to create stubs from a header file?

不,这是不可能的。

使用另一种语言解析 header 并生成源文件。 Python、Perl、AWK 或类似语言。

关于c++ - 是否可以使用预处理器或编译器从头文件创建 stub ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70958245/

相关文章:

c++ - Clang 静态分析器检查一个函数是否被调用了两次

javascript - 如何对依赖于 Promise 的 AngularJS Controller 进行单元测试?

android - 如何设置 Mockito 模拟 Android 单元测试类

java - 使用回调对静态方法进行单元测试

preprocessor - GNU-M4 : Strip empty lines

javascript - 如何使用处理器动态删除/编辑 Extjs View 中的属性

c++ - 如何从另一台 ubuntu 机器在 ubuntu 中运行 c++ 程序?

c++ - OpenMP 错误无效控制谓词

c# - 将预处理层添加到 ANTLR4 而不删除 token 的偏移量

c++ - 在C++中可以做 “call by reference when possible”吗?