如何检查Google Test是否在我的代码中运行

| 如果单元测试中,我有一段代码不希望运行。我希望找到一些我可以检查的gtest库设置的#defined标志。我找不到用于该目的的应用程序,但是在浏览了gtest标头后,我发现了一个我可以使用的示例:
SomeClass::SomeFunctionImUnitTesting() {
    // some code here
    #ifndef GTEST_NAME
    // some code I don\'t want to be tested here
    #endif
    // more code here
}
这似乎不起作用,因为所有代码都会运行。我可以检查另一个标志是否可行?     
已邀请:
Google测试不需要或提供自己的构建包装器。您甚至不必有时重新编译源文件。您可以将它们与您的测试代码链接在一起。您的测试代码将调用您已经编译的库代码。您的库代码可能甚至不包含和Gtest标头。 如果希望库代码在测试下以不同的方式运行,那么首先需要确保库代码在测试下以不同的方式编译。您将需要另一个构建目标。为该构建目标进行编译时,您可以定义一个符号,向您的代码指示其处于测试模式。我会避免为该符号加上“ 1”前缀;留给Google自己的代码使用。 实现您正在寻找的另一种方法是使用依赖注入。将您的特殊代码移动到另一个例程中,可能在其自己的类中。将指向该函数或类的指针传递到
SomeFunctionImUnitTesting
函数中并调用它。在测试该代码时,可以使您的测试工具将不同的函数或类传递给该代码,从而避免了有问题的代码,而无需多次编译代码。     

要回复问题请先登录注册