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