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

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

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

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

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

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

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