Здравствуйте, Аноним, Вы писали:
J>>Ты создаешь набор тестов, которые потом будешь прогонять автоматически, не задумываясь.
J>>Или тебе охота каждый раз перед выпуском каждого релиза/патча вручную проверять, что в каждом модуле твоей программы по-прежнему 1==1 и ты ничего не сломал случайно?
А>Предположим, у меня вся логика задачи сидит в отдельной библиотеке. Я создаю проект тестер и в нём создаю много тестов, для проверки которых мне достаточно выполить одну функцию TestAll. Всё это я напишу сам без cppunit. Так зачем мне его ставить?
Чтобы велосипед не изобретать.
cppunit — это фреймворк, который
—
сам зарегистрирует все тесты, разбросанные по файлам тестового проекта
— не бабахнет на первом же ассерте, а аккуратно пробежит по
всем тестам и расскажет, где, когда и с какими аргументами были assertion fault, а где были кинуты неожиданные исключения
— делает своё чёрное дело
унифицированно; для командной работы это большой плюс.
Простота написания тестов позволяет нарожать их огромное количество.
За счёт этого можно найти и ошибки компиляции в том числе!
И разные эксперименты по рефакторингу проводить легко. Написал тест, поджёг, рвануло. Начинаешь думать — это ошибка в программе, или ошибка в твоём понимании программы. А почему она тогда возникла?..
Когда я с самоделок пересел на cppunit, то был поражён