Что касается фреймворка модульного тестирования, то в основном их две: jUnit и TestNG. Оба имеют свои преимущества, и оба одинаково эффективны. Основным преимуществом jUnit является (на мой взгляд) включение по умолчанию плагина Eclipse, позволяющего легко вызывать тесты.
Что касается насмешливой структуры, я не считаю их обязательной частью вашего подхода к тестированию. Конечно, они полезны, но они решают конкретную задачу: тестирование поведения (в отличие от тестирования интерфейса, что позволяет jUnit. С помощью фиктивных фреймворков вы можете проверить, как конкретный класс реализует конкретный интерфейс. Будете ли вы? Вам это нужно? Очевидно. Вам это понадобится в первую очередь? Я не знаю.
Что касается правил, единственное, что я нашел полезным, простое (как всегда): «всегда тестировать код, который сломался хотя бы один раз». Рассмотрите свой трекер ошибок. Каждый раз, когда обнаруживается ошибка, должен быть модульный тест, гарантирующий отсутствие регрессии. На мой взгляд, это более быстрый способ получить качественный код.
Что касается красивого и эффективного вывода, я могу порекомендовать вам достаточно установить сервер непрерывной интеграции (Hudson, очевидно). Он будет запускать весь ваш набор тестов каждый раз, когда код будет зафиксирован, чтобы гарантировать отсутствие побочных эффектов. он будет генерировать графики, показывающие количество тестовых прогонов и так далее. он также может интегрировать инструменты покрытия кода и графики. Этот сервер непрерывной интеграции действительно быстро станет вашим напарником по тестированию.
22.07.2010