Разработка с помощью С++
Хотите начать делать TDD на С++. Я видел CPPUnit, но мне было интересно, есть ли другие варианты, которые предпочитают люди?
Спасибо за ваши предложения!
Ответы
Ответ 1
Я могу порекомендовать Google Mock. Он поставляется с копией Google Test в комплекте. Мы перешли с UnitTest ++ тоже Google Test/Google Mock пару лет назад и никогда не оглядывались назад.
Google Mock можно использовать, даже если вы не хотите использовать насмешливые средства. Его matchers являются очень полезными.
Ответ 2
Я переключился с CppUnit на boost:: test несколько лет назад, и я намного счастливее с ним.
- Документация для CppUnit отсутствует. Удачи пытаться выяснить, какие параметры командной строки он поддерживает, не читая код. По-видимому, это имеет смысл для людей, уже знакомых с Юнитом. boost:: test имеет отличную документацию.
- boost:: test aut test registration средство делает добавление unit test случаев безумно легко. С CppUnit вам нужно написать довольно много шаблонов для каждого тестового примера (строка в заголовке и строка .cpp, чтобы зарегистрировать его, поверх самого метода тестирования).
- boost:: test позволяет вам выбирать тестовые подмножества с помощью регулярного выражения из командной строки. Нам пришлось взломать источники CppUnit, чтобы заставить их сделать это, когда мы изначально подняли его.
- Единственное, что я делаю miss из CppUnit - это его Protectors ". Вы можете определить свои собственные и заставить их обернуть каждый тест и проверить все (например, у нас возникла проблема с некорректным использованием кода в режиме округления с плавающей запятой x87, проверка состояния была неизменной в Protector, которая быстро поймала всех преступников). boost:: test имеет некоторую аналогичную вещь, называемую
test_observer
, но в прошлый раз, когда я попробовал, вы не могли фактически пропустить тест из одного.
Ответ 3
Если вы просто ищете С++ unit test фреймворки, см. этот вопрос и его ответы: Структурное тестирование модулей С++