Рефакторинг, первый примерСтраница 7

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

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

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

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

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

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



Оглавление | << страница 6 | страница 8 >>