2015-10-29 3 views
2

Мне нужно проверить несколько функций, которые определены как статические в файле (не используются нигде вне этого файла, кроме как в модульном тесте).Запуск модульных тестов на статические функции

Чтобы включить единичный тестовый файл для просмотра функций, которые я пытался использовать .h-файл, в котором объявлены эти функции, однако это приводит к ошибке привязки. Решение, которое я рассмотрел, вместо использования статического ключевого слова, используя макрос, который заменяется статикой в ​​рабочей версии, пуст в тестовой версии модуля.

Однако я не знаю, как сделать условие зависимым от проекта запуска, а не вручную переопределять макрос все время. Рассматривая, как код предназначен для запуска на процессоре TI, я также рассмотрел использование функции-обертки, которая только скомпилированный под управлением WIN32.

Я бы очень хотел услышать отзывы об этих идеях и лучших идеях. Спасибо!

+0

Пожалуйста отправьте сообщение об ошибке, которую вы получите, могут помочь другим помочь вам. – CurlyCorvus

+1

Просто используйте нестатические функции? Скрипт с макросами и т. Д. Просто не стоит – stijn

+0

Возможный дубликат [как тестировать статические функции C с помощью Google теста] (http://stackoverflow.com/questions/32094797/how-to-test-static-functions-of- с-помощью-Google-тест) –

ответ

4

В исходном файле вам нужно

#ifndef UNITTESTS 
    #define STATIC 
#else 
    #define STATIC static 
#endif 

Затем, когда вы строите ваши модульные тесты проходят -DUNITTESTS сделать

В противном случае рассмотреть возможность включения исходного файла в ваших тестах, то есть

#include "file.c" 
Смежные вопросы