GoogleTest force #undef 特定测试

GoogleTest force #undef on particular test

我用的是GoogleTest,我想测试里面有#ifndef的一些函数。

文件a.c

bool myFunction() {
#ifndef FOO
   return true;
#else   
   return false;
#endif
}

是否可以在特定测试期间强制#undef?这样我可以在 2 个统计信息中测试函数(有定义和没有定义)。

这就是人们试图避免使用 #define#if 等创建的函数的多个版本的原因之一。很难测试所有这些不同的版本。

如果要测试两个版本,必须编译程序两次(一次带 #define FOO,一次不带),然后 运行 分别进行测试。如所写,更改 FOO 值的唯一方法是重新编译程序。

或者,您可以重构代码,这样就不需要 #define 了。