Поскольку результат метода statement является строкой, я создал нескольких пользователей, завёл для каждого пользователя несколько заказов (rentals) на различные типы фильмов и сгенерировал строки для statement. После этого я сравнил эти строки с результатом, полученным вручную, и сделал так, что можно запустить все тесты одной командой. Тесты работают всего несколько секунд и, как вы увидите, я запускаю их довольно часто.
Важной частью тестов является способ показа результата. Если вы видите "OK", значит, все строки идентичны и всё в порядке; в противном случае вы увидите список ошибок: строки, отличающиеся от оригинала. Таким образом, важно сделать тесты самопроверяющимися. Вы перестанете тратить время на сравнение результата работы программы с тем, что вы ожидали получить и записанным где-то в блокноте.
Пока мы будем делать рефакторинг, мы будем опираться на тесты. Я собираюсь полагаться на них, чтобы определить, не внёс ли я ошибку. При рефакторинге весьма важно иметь хорошие тесты. Стоит потратить время на их разработку, поскольку в дальнейшем они обеспечат безопасность при модификации программы. Это настолько существенная часть рефакторинга, что я собираюсь более подробно остановиться на тестировании в Главе 4.
Перед тем, как начать рефакторинг, убедитесь, что у вас есть основательный комплект тестов. Тесты должны быть самопроверяющими.
В начало | предыдущая | следующая