Если они находятся в одном и том же файле, то, к сожалению, нет (вменяемого) способа издеваться над этими глобальными функциями.Даже если это не так, вам будет трудно это сделать (например, изменить исходный код на #include
фиктивные заголовки вместо реальных при создании кода для модульного тестирования), и он будет не будьте красивыми, поэтому я настоятельно советую вам против этого.
Хотя существует стороннее расширение для добавления глобальной поддержки насмешек, оно только помогает в создании насмешек, нок сожалению, не «как заставить мои функции вместо этого вызывать макет» проблема.
Они охватывают это в этом FAQ и даже предоставляют возможные обходные пути в их блоге - вы можете переписать свой код таким образом, чтобы «избавиться» от статической глобальной функции и сделать ваш код тестируемым.
Короче говоря: Нет, естьнет хорошего и простого способа имитировать глобальные функции (особенно если они вызывают другие глобальные переменные), лучше вместо этого реорганизовать код в нечто более тестируемое.