INSTANTIATE_TEST_CASE_P
TEST_P(IsEvenTest, allEvenTest) { int n = GetParam(); EXPECT_TRUE(n); }
INSTANTIATE_TEST_CASE_P(TrueReturn, IsEvenTest, testing::Values(2,4,6,8)); //这个宏需要三个参数,其中prefix为测试用例的前缀;test_case_name为测试用例,它是我们自定义的继承自testing::TestWithParam的类;generator是是testing::internal::ParamGenerator类的示例
gtest为我们提供了如下generator:
Range(begin, end[, step]) 范围在begin~end之间,步长为step,不包括end
Values(v1, v2, ..., vN) v1,v2到vN的值
ValuesIn(container) and ValuesIn(begin, end) 从一个C类型的数组或是STL容器,或是迭代器中取值
Bool() 取false 和 true 两个值
Combine(g1, g2, ..., gN)
这个比较强悍,它将g1,g2,...gN进行排列组合,g1,g2,...gN本身是一个参数生成器,每次分别从g1,g2,..gN中各取出一个值,组合成一个元组(Tuple)作为一个参数。