Я работаю над процедурным проектом C/С++. Открытый интерфейс состоит из 4 функций, каждый из которых имеет довольно сложные задачи. Есть вспомогательные функции, объявленные в том же файле cpp
, в неназванном пространстве имен. Используемая тестовая структура - GTest.
Однако некоторые из этих вспомогательных функций становятся достаточно сложными, чтобы требовать их собственного модульного тестирования. Как правило, я бы реорганизовал эти помощники в свои собственные тестируемые единицы, но требования к проекту говорят, что все должно быть в одном cpp
, и только указанные функции могут быть общедоступными.
Можно ли использовать unit test вспомогательные функции при минимизации связи и как можно ближе к проектным требованиям?
Возможным решением было использовать макрос, чтобы превратить пространство имен в именованное для тестирования и неназванное для производства. Тем не менее, это выглядело немного грязнее, чем хотелось бы.