gtest setup teardown TestEnvironment — проблема с переменной класса

У меня есть еще один тест, где я делаю следующее, и он отлично работает:

TEST(TEST1, TestName)
{
ClassName env;
const String original = env(Con::WorkingDir);

Con c = env;
}

Однако я хочу, чтобы это было установлено для другого класса gtest и сохранялось на протяжении всего тестового устройства. Тем не менее, я получаю это сообщение об ошибке:

Вызов объекта типа класса без соответствующего оператора или
преобразование функций в указатель на тип функции.

Я смотрю на инициализировать тест, и я не уверен, что мне не хватает для этого. Это может быть использование статических переменных, с которыми я не знаком. Я не хочу, чтобы ClassName был статичным.

Что я делаю не так с этим?

//this is intended to setup env to use in teardown.
class TestEnvironment : public ::testing::Environment {
public:
static String getEn() {
ClassName env;
static const String sString = env(Con::WorkingDir);  //env has the error message here
return sString;
}
}

class UnitTest : public ::testing::Test
{
public:
virtual void SetUp() {
//
}

virtual void TearDown() {
//set env back to initial value
getEn();
//process env info;
}

-1

Решение

class UnitTest : public ::testing::Test {  //can't use Environment here because of name conflict in our code, although that was used by static const variable setup in example link.
public:
String orig;
}

class UnitTest : public ::testing::Test
{
public:
virtual void SetUp() {
orig = code;
}

virtual void TearDown() {
//process orig;
}

Оказалось, что, хотя наш код искал const-строку, нам не нужно сохранять ее как const.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]