gtest参数化
1、简介 在设计测试案例时,经常需要考虑给被测函数传入不同的值的情况。按照之前的通用方法,需要多次调用同一个函数,这种做法很不方便,效率也不好。 如: TEST(IsPrimeTest, HandleTrueReturn) { EXPECT_TRUE(IsPrime(3)); EXPECT_TRUE(IsPrime(5)); EXPECT_TRUE(IsPrime(11)); EXPECT_TRUE(IsPrime(23)); EXPECT_TRUE(IsPrime(17)); ...... } 这种方法就是1个测试案例,有5个检查点。而且传入再多的值也无法保证函数正确。IsPrime函数在gtest的example1.cc中。因此Google使用参数化的方法解决这种问题。 2、参数化 2.1 告知gtest需要使用的参数类型 必须添加一个类,继承testing::TestWithParam<T>,其中T就是你需要参数化的参数类型。如:参数化int型的参数(放在头文件中) class myTest : public testing::TestWithParam<int> { }; 2.2 告知gtest拿到参数后执行的操作 当前的参数的具体值 如: TEST_P(myTest, test0) { int num = GetParam();