googletest 示例
googletest测试用例
class TestExample : public testing::Test { public: // 所有用例执行前 执行该函数 static void SetUpTestCase() {} // 所有用例执行结束后,执行该函数 static void TearDownTestCase() {} // 每个用例执行前,均会执行该函数 // 不用virtual void Setup()是因为如果父类不存在,则会重定义一个,但override()是继承父类。 virtual void SetUp() override {} // 每个用例执行后, 均会执行该函数 virtual void TearDown() override {} }; // TEST // 测试函数 // 测试简单的类 TEST(TestExample1, test_0) {} // TEST_F:第一个参数是个大类,第二个参数是具体的用例。 // 需要设计一个测试类(成员、SetUp、TearDown) // 测试较为复杂的函数、类 TEST_F(TestExample, test_f_t0) {} class ParamTestEx : public testing::TestWithParam<int> {}; // TEST_P: // 带参数的测试 TEST_P(ParamTestEx, test_p_t0) { int value = GetParam(); cout << "value=" << value << endl; } // INSTANTIATE_TEST_SUITE_P 实例化 // 第一个参数是测试用例的前缀,可以任意取。 // 第二个参数是测试用例的名称,需要和之前定义的参数化的类的名称相同,如:ParamTestEx // 第三个参数是可以理解为参数生成器,上面的例子使用test::Values表示使用括号内的参数。Google提供了一系列的参数生成的函数: INSTANTIATE_TEST_SUITE_P(test_p, ParamTestEx, testing::Values(5, 9, 10, 12));