Модульное тестирование устаревшей программы, написанной на C - PullRequest
1 голос
/ 16 июля 2010

Я поддерживаю серверное приложение, написанное на C много лет назад. У него очень мало юнит-тестов (cxxtest), и я думаю о разработке больше.

Я читал на тему модульного тестирования программ на C в последние дни и тоже попробовал несколько вещей. Похоже, что правильно сделать, чтобы включить .c файл, содержащий функцию для тестирования из моего набора тестов. Однако, поскольку этот файл .c содержит много функций, вызывающих многие другие, существует множество зависимостей, с которыми мне приходится иметь дело, прежде чем я смогу начать настоящую работу.

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

Есть ли лучшее решение или основа для решения этой проблемы?

Ответы [ 2 ]

2 голосов
/ 22 июля 2010

Cmock решает большую часть моей проблемы. Я отказался от идеи выделения единственной функции. Я буду в порядке, если я могу изолировать один файл C от другого. Cmock позволяет мне делать это довольно удобно (и даже больше).

2 голосов
/ 16 июля 2010

Необходимым условием написания твердых модульных тестов является способность тестировать код изолированно.т. е. вызывать этот метод без использования какой-либо другой логики.Похоже, что вам, возможно, потребуется выполнить некоторый рефакторинг для удаления упомянутых зависимостей, прежде чем вы сможете выполнить это.

Что касается основы модульного тестирования для C, посмотрите здесь аналогичное обсуждение: Unit-Testing C Code

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...