谷歌测试宏

时间:2014-03-17 09:01:23

标签: c++ googletest

我很好奇是否为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;
}

3 个答案:

答案 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返回的值以查看它是否成功。