c++ - 如何访问谷歌测试夹具静态变量
问题描述
我想用谷歌测试来测试我的一门课。这个类的初始化需要大量的时间和资源,所以我想对我所有的测试用例只做一次,所以我尝试使用带有 SetUpTestSuite() 的夹具。在我的夹具中,我声明了一个变量:
static MyClassToBeTested my_class;
在我的测试用例中,我想访问该my_class
变量。
在编译期间,我收到以下错误:
undefined reference to 'MyTest::my_class'
我试图简单地访问my_class
它MyTest::my_class
:
class MyTest : public ::testing::Test {
protected:
static MyClassToBeTested my_class;
static void SetUpTestSuite() {
//doing some stuff here
}
};
TEST_F(MyTest, first_test) {
ASSERT_EQ(my_class.foo(), 5);
}
解决方案
你必须定义你的静态变量
class MyTest : public ::testing::Test {
protected:
static MyClassToBeTested my_class;
static void SetUpTestSuite() {
//doing some stuff here
}
};
MyClassToBeTested MyTest::my_class;
推荐阅读
- vue.js - Vue:如何在 CI 平台上找出构建引擎所需的依赖项?
- php - PHP的说法是对的吗?
- mysql - 将大型(40 GB).csv 文件上传到 mysql 表的最佳方法是什么
- recaptcha - Orbeon 表单 - 提交表单后 reCAPTCHA Field required 错误
- java - 如何评估包含枚举值的json字符串?
- typeorm - 如何使用 typeorm 加载与树实体的关系?
- mysql - 嵌套 SQL 查询?
- python - 这两个结果有什么不同?
- javascript - 我怎样才能检测到哪个
我的手指现在在吗? - android - 如何使用方案在android上加载应用程序的活动