在谷歌测试框架中共享两个测试用例之间的数据

时间:2016-08-05 18:33:51

标签: c++ googletest

我正在使用谷歌测试框架测试具有随机输入数据的算法的特定实现。我想将相同的随机输入数据用于同一算法的另一个实现。我使用两个单独的测试用例来测试这两个实现。有没有办法将随机输入数据从一个测试用例共享到另一个测试用例。

2 个答案:

答案 0 :(得分:4)

请参阅https://github.com/google/googletest/blob/master/googletest/docs/advanced.md#sharing-resources-between-tests-in-the-same-test-case

中的“在同一测试用例中共享测试之间的资源”部分

在测试夹具类中遵循静态方法:

static void SetUpTestCase()

static void TearDownTestCase()

分别用于获取和发布共享资源。

当然,表示共享对象的成员变量必须定义为测试夹具类的静态成员(静态方法只能访问静态成员)。不要忘记全局变量,比如那些成员的声明(如果你没有像那样声明它们,编译器会抛出错误。)

在执行第一个测试之前,Google Test Framework会调用

SetUpTestCase(),在执行最后一个测试之后调用TearDownTestCase()

我提到的一切都在上面的参考文献中有详细描述。那里也有例子。

答案 1 :(得分:2)

您可以按照文档中的说明使用Test Fixture

TEST_F(test_case_name, test_name) {
 ... test body ...
}

测试夹具保留使用SetUp()函数创建的数据,在测试用例的运行之间进行修改。