Модульное тестирование в C ++ - PullRequest
13 голосов
/ 27 мая 2009

Я много читал о модульных тестах и ​​тестировании управляемой разработки.

Недавно я также прочитал код модульного тестирования Java.

Я, однако, предпочитаю развиваться в Qt. Поэтому я погуглил «модульное тестирование в c ++» и нашел множество информации о различных инфраструктурах модульного тестирования, доступных для C ++.

Однако я не смог найти надежного сравнения различных фреймворков.

Поэтому я обращаюсь к SO-сообществу, которое поможет мне в выборе того, что может быть «лучшим» фреймворком модульного тестирования для c ++.

Кроме того, если у кого-то есть конкретные комментарии относительно TDD в Qt (особенно при использовании Qt-Creator), то они более чем приветствуются.

Ответы [ 7 ]

17 голосов
/ 27 мая 2009

Обычно используют Boost , но если вы используете Qt, их QtTestLib может быть лучшим выбором.

5 голосов
/ 10 октября 2016

Я бы порекомендовал doctest (созданный мной) - это самое легкое время компиляции из всех популярных платформ тестирования. Он также является прямым конкурентом для Catch , который в настоящее время является наиболее часто используемым фреймворком - ознакомьтесь с различиями в FAQ

3 голосов
/ 27 мая 2009

Похоже, это тот же вопрос, что и:

Модульное тестирование в C ++ , который на самом деле является C ++, несмотря на заголовок URL.

Оттуда они ссылаются на еще два вопроса SO, которые должны помочь:

Модульное тестирование кода C ++ - Инструменты и методология Структура модульного тестирования C ++

2 голосов
/ 27 мая 2009

Существует таблица , в которой сравниваются все (?) Рамки модульного тестирования C ++ , доступные из википедии.

Также доступно старое сравнение структур модульных тестов C ++ . Я не думаю, что это не было обновлено, поэтому я упоминаю это как дополнение, поскольку это более аргументировано, чем таблица. Он охватывает CppUnit, CppUnitLite, Boost.Test, NanoCppUnit, Unit ++, CxxTest, особенно он не охватывает Google C ++ framework .

2 голосов
/ 27 мая 2009

Семейство фреймворков для тестирования xUnit обычно довольно прочное (jUnit, NUnit и т. Д.) Я не использовал его сам, но есть порт jUnit для C ++:

http://sourceforge.net/projects/cppunit

1 голос
/ 27 мая 2009

Boost обычно является хорошим выбором, и он содержит среду тестирования, Boost Test Library . Я использовал его для небольших тестовых случаев, и он сделал то, что я ожидал, но я не использовал его широко, как в TTD.

0 голосов
/ 06 июня 2018

Если вы хотите быстро оторваться от земли, не разбираясь в том, как создать библиотеку, есть один заголовочный файл, включающий решение, которое поддерживает приборы (установка и разборка), обычный TEST () {} с CHECK_TRUE и т. Д. , Он также имеет функции обнаружения утечек памяти и тестирования производительности.

https://gitlab.com/cppocl/unit_test_framework

...