- Превратить файл в класс и переопределить методы. [...]
- Обернуть весь исходный файл #ifdef [...]
Если возможно, переходите к 1, так как у вас будет централизованный способ обращения к коду базы данных (указатель класса вместо функций X). Это означает модульность, простоту в замене реализации (с заглушками или с другой серверной частью БД) и более инкапсулированный код.
Если вы выберете 2, рассмотрите возможность замены реализацией функций. То есть внутри исходных функций задействуйте код тестирования (на основе if
).
Ваш протестированный код полностью независим от того, работает ли он в тестовой среде или нет, потеря производительности незначительна (if(booleanFlagHere)
- незначительная стоимость в большинстве случаев), и вам не нужно изменять тестируемый код вообще).