Редактировать : на странице проверки проекта есть список проектов, использующих проверку в качестве основы модульного тестирования. Некоторые ссылки устарели, но вы можете просмотреть источник модульного теста пигмент и SCEW ; нужно скачать источник для других.
minunit не имеет никаких зависимостей и может использоваться в качестве основы для создания вашей собственной инфраструктуры.
Что касается подхода, я начинаю с функций самого низкого уровня (листья). Очень часто, когда я тестирую функцию более высокого уровня, они вызывают функции более низкого уровня. Это не проблема, поскольку нижние функции уже были протестированы.
Я также модулирую код как «объект» или таблицу объектов. Функции-заглушки позволяют проводить тестирование изолированно от оборудования или других компонентов.
Я избавляюсь от статики с помощью определения, удаляющего их, или включаю исходный файл, содержащий функции для тестирования, в исходный файл модульных тестов.
#if defined(UNIT_TESTING)
#define STATIC
#else
#define STATIC static
#endif
Здесь нет ракетостроения, но это помогает.
И последнее: протестируйте поведение, а не реализацию, чтобы модульные тесты не прерывались при изменении реализации.