#if(ERROR_REPORT == ON)
//...
#endif
Является, как вы правильно сказали, командой препроцессора (в результате чего промежуточный текст компилируется только в том случае, если ON
определено для *1003* во время компиляции.
You может провести модульное тестирование этого кода: создайте заглушку / макет для ReportError()
(вам может понадобиться применить внедрение зависимостей или подобное для вставки заглушки / макета - существует множество хороших фреймворков иучебники для этого в Интернете, например, gmock ) и либо создайте два тестовых класса (один, который определяет ERROR_REPORT
до ON
, а другой - нет), либо дважды скомпилируйте весь исполняемый файл теста (один сERROR_REPORT
определено ON
) и ваши ожидаемые результаты испытаний также зависят от значения ERROR_REPORT
.