Утверждайте глобальное состояние после каждого тестового примераC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Утверждайте глобальное состояние после каждого тестового примера

Сообщение Anonymous »

В моем GTEST каждый отдельный случай может потенциально изменить глобальную переменную, поэтому было бы идеально проверить ее значение на вызове системной библиотеки после каждого тестового примера. Но когда я прикрепляю тестирование :: testeventListener с assert_eq () intestcaseend () , это приводит к тому, что весь тест висел в течение 10 минут, а затем, наконец, сообщит, что тест не начался (платформы - симулятор Xcode 15.2, еще не пробовал другие). Похоже, нет никакой проблемы с самим слушателем, поскольку все тесты обычно проходят нормально, если я просто удаляю Assert_eq () из слушателя. В противном случае этот код может быть вставлен в каждый тестовый пример, но это дорого во многих отношениях.class GlobalEvaluator : public testing::TestEventListener {
public:
GlobalEvaluator() {
testing::TestEventListeners &listeners = testing::UnitTest::GetInstance()->listeners();
listeners.Append(this);
}

void OnTestCaseEnd(const testing::TestCase &) override { ASSERT_EQ(global_value(), system_lib_call()); }
};

static GlobalEvaluator globalEvaluator;


Подробнее здесь: https://stackoverflow.com/questions/797 ... -test-case
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»