c++ - GTest 参数函数编译失败:在哪里修复?
问题描述
我的代码:
#include <gtest/gtest.h>
bool IsEven(int i){return i%2==0;}
class IsEvenParamTest:public testing::TestWithParam<int>{};
INITIALIZE_TEST_CASE_P(MySuccess,IsEvenParamTest,testing::Range(2,6));
TEST_P(IsEvenParamTest, All){
int n = GetParam();
EXPECT_TRUE(IsEven(n));
}
g++ 编译失败:
mytest.cpp:4:23: error: expected constructor, destructor, or type conversion before ‘(’ token
INITIALIZE_TEST_CASE_P(MySuccess,IsEvenParamTest,testing::Range(2,6));
^
如何解决?
解决方案
我找到了一个可能的解决方案:正如Googletest 的错误跟踪器中所解释的那样 ,宏的名称在 1.8.0 之后已更改:
INSTANTIATE_TEST_SUITE_P
适用于大师,INSTANTIATE_TEST_CASE_P
适用于 1.8.0
因此,如果您正在关注旧文档但使用较新版本的 GTest(或相反,像我一样),您应该使用另一个宏。
推荐阅读
- oracle - 重做日志是否存储应用于数据库缓冲区缓存的所有更改?
- python - Multiprocess.pool.map() 引发 ValueError:没有要连接的对象
- php - How to get the checkbox value in php html
- algorithm - Packrat 缓存:从右到左与从左到右?
- c# - 从 Outlook 拖放到 Winforms
- android - android-apt plugin is incompatible with the Android Gradle plugin. Please use 'annotationProcessor' configuration instead. Affected Modules:
- c# - Xamarin Forms 在 sqlite 数据库中保存图像
- r - 为什么使用 fread 函数在 R 中导入数据会导致特殊的数据类型比较错误,从而导致进一步的过滤问题
- java - spring mvc migrates to spring boot in spring mvc beans in xml and configruations also how to remove module dependancies?
- javascript - How to close dropdown when click anywhere in vue js