Это возможно / достаточно продуктивно для TDD в проектах C++?

Я хочу знать, использует ли кто-нибудь из вас TDD в ваших проектах C++ и как он работает по сравнению с управляемыми языками, такими как C# и Java. А какие фреймворки вы, ребята, используете для автоматизации тестов на проектах C++?

3 ответа

Два полезных C++ каркаса тестирования, которые, кажется, еще не упомянуты Boost test а также Google Test,

Недавно я перешел от проекта C#, который был разработан с использованием TDD, к проекту, который использует C++. Я немного боялся этого, но обнаружил, что работать с C++ с TDD намного приятнее, а код более надежен, чем я помню из прошлого (не TDD) опыта работы с C++.

Мы используем Google Test. Он не так прост в использовании, как NUnit/MbUnit, но, похоже, работает довольно хорошо. Существует также Google Mocking Framework http://code.google.com/p/googlemock, но я еще не использовал это.

Разработка через тестирование возможна на любом языке. Вам нужны правильные инструменты и методики тестирования для языка, и, возможно, вам может потребоваться настраиваемая инфраструктура тестирования для вашего проекта.

Я обнаружил, что CppUnit (по крайней мере, 1.x) очень плохой фреймворк - кажется, он использует идиомы Java/C# на языке C++ и не поддерживает конструкции STL.

Если вам нужен хороший пример разработки через тестирование (на C), посмотрите на проект Wine - http://test.winehq.org/data/ показывает результаты своих тестов для разных версий Windows, Wine и разных коммитов. в хранилище Wine. У них есть собственная тестовая инфраструктура.

Другие вопросы по тегам