Разработка через тестирование. Как мне обработать рефакторинг непроверенного унаследованного кода? - PullRequest
1 голос
/ 17 ноября 2011

Я начинаю перенимать поведение и рабочий процесс Test Driven Design (TDD) для моих проектов разработки под iOS.Существует, по крайней мере, одно препятствие в контексте устаревшего программного обеспечения.Мне часто придется добавлять функции в уже существующую базу кода, к которой я новичок.Обычно я хочу рефакторинг в начале работы с базой кода, которая часто не имеет доступных тестов, чтобы гарантировать, что мои рефакторинги не изменяют функциональность кода или хуже, добавляя ошибки.

Мой вопрос заключается в том, каклюди TDD запускают весь процесс, когда код написан не с нуля, а унаследованный код, над которым они работают?

Спасибо,
Даг

ОБНОВЛЕНИЕ

В качестве конкретного примера я использую пример из Рефакторинга Мартина Фаулера, перекодированного в Objective-C, в качестве обучающего устройства для TDD (и AppCode) >>

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

1 Ответ

4 голосов
/ 17 ноября 2011

Для начала, если вы не понимаете устаревший код, с которым работаете, вам нужно исправить это, прежде чем делать то, что вас интересует, может изменить поведение.

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

...