Как получить доступ к статической переменной Google Test Fixture - PullRequest
0 голосов
/ 18 октября 2019

Я хотел бы проверить один из моих классов с помощью Google Test. Инициализация этого класса занимает много времени и ресурсов, поэтому я хотел бы сделать это только один раз для всех моих тестовых случаев, поэтому я пытаюсь использовать фикстуру с 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);
}

1 Ответ

0 голосов
/ 18 октября 2019

Вы должны определить свою статическую переменную

class MyTest : public ::testing::Test {
protected:
    static MyClassToBeTested my_class;
    static void SetUpTestSuite() {
        //doing some stuff here
    }
};

MyClassToBeTested MyTest::my_class;
...