GoogleTest заставляет #undef на конкретном тесте - PullRequest
0 голосов
/ 20 сентября 2018

Я использую GoogleTest и хочу протестировать некоторые функции с #ifndef внутри.

file ac

bool myFunction() {
#ifndef FOO
   return true;
#else   
   return false;
#endif
}

Можно ли принудительно вызвать #undef во время определенного теста?Таким образом, я могу проверить функцию в 2 статистических данных (с определением и без).

1 Ответ

0 голосов
/ 20 сентября 2018

Это одна из причин, по которой люди стараются избегать использования нескольких версий функций, которые вы создаете с помощью #define, #if и т. Д. Трудно протестировать все эти разные версии.

Если вы хотите протестировать обе версии, вы должны скомпилировать вашу программу дважды (одну с #define FOO и одну без), а затем запустить тесты отдельно.Единственный способ изменить значение FOO, как написано, это перекомпилировать программу.

Кроме того, вы можете реорганизовать свой код, чтобы #define не требовался.

...