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)作为一个参数。

 

 


                                              

 

posted @ 2021-03-25 17:35  我已不爱凯蒂  阅读(519)  评论(0编辑  收藏  举报