2012-06-28 6 views
0

Как можно получить переменную, которую я установил в первом CPPUNIT_TEST, в CPPUNIT_TEST после этого?CPPUnit - Глобальные переменные

Для EX.

CPPUNIT_TEST_SUITE(TestingEx); 
CPPUNIT_TEST(ex1); 
CPPUNIT_TEST(ex2); 
CPPUNIT_TEST_SUITE_END(); 

public: 
int x=0; 
void ex1() 
{ 
do some testing and logic would set x to someother value ... 
    x=4; 
} 
void ex2() 
{ 
use x to do some testing // x should be 4, but I get 0?? 
} 

Не могли бы вы объяснить, что случилось, и как я могу заставить его работать?

ответ

1

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

Вы есть решения, чтобы решить вашу проблему:

  • Используйте статическую переменную в классе, что некрасиво и редко должен быть использован, когда не сочинительства испытания и почти никогда для модульных тестов.
  • использовать программу установки для инициализации тестовой среды перед каждым испытанием выполняется
  • инициализации данных каким-либо другим способом, как конструктор, в методе испытаний, ... перед каждым испытанием
Смежные вопросы