Ответ 1
Обычно используйте Boost, но если вы используете Qt, их QtTestLib может быть лучшим выбором.
Я много читал о модульных тестах и тестировании.
Недавно я также прочитал код java unit test.
Однако я предпочитаю развиваться в Qt. Таким образом, я искал "модульное тестирование в С++" и нашел множество информации о различных модулях модульного тестирования, доступных для С++.
Однако я не смог найти надежное сравнение различных фреймворков.
Итак, я смотрю на сообщество SO, которое проведет меня через выбор того, что может быть "наилучшим" модулем тестирования модулей для С++.
Кроме того, если у кого-то были особые комментарии относительно TDD в Qt (особенно с использованием Qt-Creator), то они более чем приветствуются.
Обычно используйте Boost, но если вы используете Qt, их QtTestLib может быть лучшим выбором.
Я бы рекомендовал doctest (созданный мной) - он самый легкий во время компиляции из всех популярных тестовых фреймворков. Он также является прямым конкурентом Catch, который в настоящее время является наиболее используемой средой - проверьте отличия в FAQ
Это, похоже, тоже вопрос:
Модульное тестирование на С++, которое на самом деле С++, несмотря на название URL.
Оттуда они свяжутся с еще двумя вопросами SO, которые должны помочь:
Модульное тестирование кода С++ - Инструменты и методология С++ модульная система тестирования
Семейство тестовых фреймворков "xUnit" обычно довольно солидно (jUnit, NUnit и т.д.). Я не использовал его сам, но есть порт jUnit для С++:
Существует таблица сравнивающая все (?) С++ unit test рамки, доступные из википедии.
Также существует старое сравнение возможностей С++ unit test. Я не думаю, что он не был обновлен, поэтому я упоминаю его как дополнение, поскольку он более аргументирован, чем таблица. Он охватывает, CppUnit, CppUnitLite, Boost.Test, NanoCppUnit, Unit ++, CxxTest, особенно он не охватывает Google С++ framework.
Boost обычно является хорошим выбором, и он содержит тестовую структуру, Boost Test Library. Я использовал его для небольших тестовых примеров, и он сделал то, что я ожидал, но я не использовал его широко, как в TTD.