Глобальные переменные C++, привязанные ко всем юнит-тестам после установкиC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Глобальные переменные C++, привязанные ко всем юнит-тестам после установки

Сообщение Anonymous »

Я застрял, пытаясь изолировать свои тестовые примеры с точки зрения глобальных переменных.
В моем файле core.h

Код: Выделить всё

int globalMethod(bool flag);
В моем core.cpp

Код: Выделить всё

#include "core.h"
bool globalVar = false;

int globalMethod(bool flag) {
if(flag)
{
globalVar = true;
return true;
}
return false;
}
В моем myextns_test.cpp (соответствует myextns.h)

Код: Выделить всё

#include 
#include 
#include 

BOOST_AUTO_TEST_SUITE(ourextns)
BOOST_AUTO_TEST_SUITE(myextns)

BOOST_AUTO_TEST_CASE(case1)
{
globalMethod(true);
bool result = myFirstMethod(); // does not fail because globalVar is true
BOOST_REQUIRE(result);
}

BOOST_AUTO_TEST_CASE(case2)
{
someother_api_method(); // internally CHECKS globalVar is true or not and finds true!!
bool result = mySecondMethod(); // !!succeeds as the method before this succeeded - it should fail
BOOST_REQUIRE(result); // success
}

BOOST_AUTO_TEST_SUITE_END()
BOOST_AUTO_TEST_SUITE_END()
Причина в том, что Case1 и Case2 получают указатель на одну и ту же глобальную переменную. Я читаю Fixtures, но, похоже, я ничего не могу сделать, поскольку переменная является глобальной и к ней нельзя получить доступ извне. Кто-нибудь знает, как это решить? Спасибо

Подробнее здесь: https://stackoverflow.com/questions/786 ... s-once-set
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Глобальные переменные C++, привязанные ко всем юнит-тестам после установки
    Anonymous » » в форуме C++
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous
  • Yocto устанавливает пользовательские переменные, глобальные переменные
    Anonymous » » в форуме Python
    0 Ответы
    31 Просмотры
    Последнее сообщение Anonymous
  • Как получить все атрибуты объекта Python `pxr.Usd.Prim`, привязанные к объекту C++
    Anonymous » » в форуме Python
    0 Ответы
    48 Просмотры
    Последнее сообщение Anonymous
  • Как получить все атрибуты объекта Python `pxr.Usd.Prim`, привязанные к объекту C++
    Anonymous » » в форуме C++
    0 Ответы
    42 Просмотры
    Последнее сообщение Anonymous
  • Функции Asyncio, привязанные к ЦП
    Anonymous » » в форуме Python
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous

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