我想用google test测试我的课程之一。此类的初始化需要很多时间和资源,因此对于所有测试用例,我只想执行一次,因此,我尝试将Fixture与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;
关于c++ - 如何访问Google Test Fixture静态变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58453359/