Первый шаг рефакторинга

Когда бы я ни делал рефакторинг, первый шаг всегда один и тот же. Я должен создать основательный набор тестов для этого куска кода. Тесты очень существенны, потому что даже если я буду следовать методике рефакторинга, я всё-таки человек и могу делать ошибки. Таким образом, тесты очень нужны.

Поскольку результат метода statement является строкой, я создал нескольких пользователей, завёл для каждого пользователя несколько заказов (rentals) на различные типы фильмов и сгенерировал строки для statement. После этого я сравнил эти строки с результатом, полученным вручную, и сделал так, что можно запустить все тесты одной командой. Тесты работают всего несколько секунд и, как вы увидите, я запускаю их довольно часто.

Важной частью тестов является способ показа результата. Если вы видите "OK", значит, все строки идентичны и всё в порядке; в противном случае вы увидите список ошибок: строки, отличающиеся от оригинала. Таким образом, важно сделать тесты самопроверяющимися. Вы перестанете тратить время на сравнение результата работы программы с тем, что вы ожидали получить и записанным где-то в блокноте.

Пока мы будем делать рефакторинг, мы будем опираться на тесты. Я собираюсь полагаться на них, чтобы определить, не внёс ли я ошибку. При рефакторинге весьма важно иметь хорошие тесты. Стоит потратить время на их разработку, поскольку в дальнейшем они обеспечат безопасность при модификации программы. Это настолько существенная часть рефакторинга, что я собираюсь более подробно остановиться на тестировании в Главе 4.

Перед тем, как начать рефакторинг, убедитесь, что у вас есть основательный комплект тестов. Тесты должны быть самопроверяющими.

В начало | предыдущая | следующая