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

标签 c++ googletest

我正在使用 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/

相关文章:

c++ - 垂直布局 QTableView 的范例方式

c++ - 将类型映射到整数值后,如何获得给定整数值的类型?

c++ - 为枚举类重载强制转换运算符

c++ - 为什么传递给函数的指针会得到不同的内存地址?

c++ - 使用 swscale 进行图像合成

azure-pipelines - 如何在 Azure Pipeline 中发布 GoogleTest 结果?

cmake - 使用cmake+ninja构建并自动执行时,GTest的输出没有颜色

c++ - 对 vector 字符串进行单元测试

c++ - googletest 符号的 "multiple definition"仅在使用 gradle 在 Travis CI 上编译时

c++ - CMake + GoogleTest 在小型库集合中给出重新定义错误