CppUnit тестирование с существующим проектом

Я новичок в тестировании CppUnit, и у меня есть базовый набор вопросов.

Итак, тесты CppUnit нуждаются в основной функции для запуска. Однако я хочу, чтобы эта основная часть была отделена от основной части проекта, который я хочу протестировать. Итак, поскольку у вас не может быть двух основных функций в одном проекте, я создал подпроект (кстати, я использую Qt), в котором будут размещены все мои тестовые классы. Однако, похоже, это вызывает собственный набор проблем, поскольку в Qt я могу указать, какой подпроект я хочу запустить. Это может означать, что я не могу сделать их подпроектами и хранить их отдельно.

Я привык к JUnit, где существует пара классов 1 к 1 для тестирования классов, и когда я хочу запустить тестовый пример для класса, я бы щелкнул его правой кнопкой мыши и запустил. Никакой основной функции не требуется.

Думаю, я ищу объяснение того, как протестировать уже существующий зрелый проект, который в настоящее время не проходит тестирование. Все, что я нахожу, предполагает, что вы параллельно разрабатываете проект и его тестирование.

Спасибо!


person user869525    schedule 22.09.2012    source источник


Ответы (1)


CPPUnit достаточно гибок, чтобы вы могли с легкостью тестировать функциональные области большей части вашего кода: то, что я называю стороной потребления и стороной реализации.

Начиная с большой уже существующей библиотеки, как правило, рекомендуется настроить внешние тестовые примеры «потребления», которые интенсивно используют фикстуры в cppunit. Для этого вы, по сути, тестируете внешнюю функциональность ваших классов объектов. Вы настроите объекты, с которыми вы знакомы, в приспособлениях и напишете для них тестовые примеры. По мере того, как у вас есть время, добавляйте все больше и больше внутренних тестовых примеров, специфичных для внутреннего устройства каждого класса и пар, поскольку они относятся к классам, которые взаимодействуют. в конечном итоге весь новый код, который вы пишете, будет иметь интегрированные или связанные с ними тестовые примеры (буквально сотни или тысячи с течением времени).

Я буду первым, кто скажет вам, что cppunit - это не серебряная пуля и нигде близко не так гибок, как junit (простое отсутствие отражения, присущего языку, - огромная причина, почему). Но на это однозначно стоит потратить время.

person WhozCraig    schedule 22.09.2012