我正在使用 google 测试框架测试具有随机输入数据的算法的特定实现。我想对同一算法的另一个实现使用相同的随机输入数据。我正在使用两个单独的测试用例测试这两个实现。有没有办法将随机输入数据从一个测试用例共享到另一个测试用例。
最佳答案
查看 https://github.com/google/googletest/blob/master/docs/advanced.md#sharing-resources-between-tests-in-the-same-test-suite 中的“在同一测试用例中的测试之间共享资源”部分
在测试夹具类中使用静态方法:
static void SetUpTestCase()
static void TearDownTestCase()
分别为共享资源的获取和释放服务。
当然,表示共享对象的成员变量必须定义为测试夹具类的静态成员(静态方法只能访问静态成员)。不要忘记像声明这些成员那样的全局变量(如果您不这样声明它们,编译器会抛出错误)。
SetUpTestCase()
在执行第一个测试之前由 Google 测试框架调用,在执行最后一个测试之后调用 TearDownTestCase()
。
我提到的所有内容都在上面的引用资料中进行了全面描述。那里也有例子。
关于c++ - 在谷歌测试框架中的两个测试用例之间共享数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38795772/