我很好奇是否为google测试框架定义了一个宏,它允许我测试代码是否作为测试的一部分进行编译。我有兴趣实现以下行为:
int someFunction()
{
// do some stuff and some checks
if(i_am_not_happy_with_results_above)
{
#if CODE_COMPILED_AS_PART_OF_TEST
FAIL()
#else
exit();
#endif
}
return 42;
}
答案 0 :(得分:2)
如上所述,Google Test中没有此类内容,但您可以通过定义预处理程序令牌来实现此目的,只需将-DCODE_COMPILED_AS_PART_OF_TEST
添加到构建命令即可构建为测试模式。例如,
g++ -DCODE_COMPILED_AS_PART_OF_TEST source.cpp
答案 1 :(得分:1)
不,没有这样的事情,因为那不是单元测试的目的。他们测试运行时功能。如果包含或删除某些代码,理想情况下单元测试应该失败 1 。
1 并不总是发生,具体取决于代码。
答案 2 :(得分:0)
您可以使用std::system
中的stdlib.h
函数为代码构建运行make
,然后测试make
返回的值以查看它是否成功。