Подтвердить что ты не робот

Тестирование модулей в С++

Как мне начать выполнять модульное тестирование на С++?

Я использовал Junit при кодировании на Java и нашел его очень полезным. Есть что-то подобное в С++? Что вы рекомендуете?

4b9b3361

Ответ 2

Недавно я написал серию статей в блоге из 5 частей, посвященных блочному тестированию на С++ с повышением. Он дает пошаговые инструкции о том, как это сделать в Visual Studio.

  • Часть 1: как начать выпуск модульных тестов на С++ с помощью Boost.Test.

  • Часть 2: структура утверждения, предоставленная Boost.Test, в контексте простого упражнения по программированию, которое демонстрирует тестовые развитие.

  • Часть 3: продолжение с тестовой разработкой для завершения функциональности метода PrimeFactors:: Generate.

  • Часть 4: разработка пользовательского интерфейса с использованием тестовых операций.

  • Часть 5: средства в Boost.Test для совместного использования общих действий по установке и разрыву между тестами и организации тестов в наборах.

Ответ 3

Отметьте CppUnit, это порт jUnit для С++.

Ответ 4

UnitTest ++, легенда гласит, что UnitTest ++ был написан автором этого в блоках единичного тестирования.

Ответ 5

Хорошо округлить здесь.

Мы используем Boost.Test, и мы можем делать хорошую кросс-платформенную непрерывную интеграцию.

Ответ 6

Взгляните на эту страницу: http://gamesfromwithin.com/?p=29

Это лучшее сравнение фреймворков С++. Я лично предпочитаю Boost.Test.

Ответ 7

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

Ответ 8

Я только начал использовать googletest (https://github.com/google/googletest/). Его просто интегрировать, и у меня не было никаких проблем с ним.

Ответ 9

Мой личный фаворит - TUT. Две основные причины: 1) он не заставляет Java-измы на вас, а использует то, что С++, и 2) вы контролируете его, записываете исполняемый файл (у меня есть шаблон, который я использовал), отчет и т.д. (по умолчанию используется версия, основанная на потоке).

Мне очень нравится философия KISS, 2 заголовка, никаких макросов, без парсеров, простой старый код на С++ с крошечным битом кода скелета.

http://tut-framework.sourceforge.net/

Ответ 10

Я только что нажал свою собственную фреймворк, CATCH. Он все еще находится в разработке, но я считаю, что он уже превосходит большинство других структур. У разных людей разные критерии, но я пытался охватить большинство из них без слишком большого количества компромиссов. Взгляните на мою связанную запись в блоге для дегустатора. Мои пять лучших функций:

  • Только заголовок
  • Автоматическая регистрация тестов на основе функций и методов
  • Разлагает стандартные выражения С++ в LHS и RHS (так что вам не нужно целое семейство макросов assert).
  • Поддержка вложенных разделов в функциональном устройстве
  • Именованные тесты с использованием естественного языка - генерируются имена функций/методов

Он также имеет привязки Objective-C.

Ответ 11

Не зная, какую платформу/компилятор вы нацеливаете, я могу сделать только общую рекомендацию. Я использовал this (CppTest) довольно успешно в прошлом. Там выглядит простая структура под названием UnitTest ++, которая выглядит интересной.

Ответ 12

Aeryn - еще одна С++ Testing Framework, заслуживающая внимания

Ответ 13

Посмотрите CUnitWin32. Он включает пример.