Наконец, я много читаю о коде Legacy и о том, как с ним обращаться. У меня есть пример проекта, который содержит плохо написанный код, и я хотел бы реорганизовать его.
ПРИМЕЧАНИЕ. Тестов не существует, поэтому я хотел бы сначала добавить несколько тестов, чтобы убедиться, что я не что-то сломать с помощью рефакторинга, но я не знаю, как это проверить.
Учитывая следующую диаграмму ULM:
I хотите написать UT для методов в классе Manager (ПРИМЕЧАНИЕ: они не отображаются в ULM). Проблема в том, что для класса Manager требуется объект User, который наследует несколько уровней глубины.
Для простоты я не полностью нарисовал весь график, но давайте предположим, что конструктор объекта 'User' нуждается в несколько аргументов, и все эти аргументы представляют объекты с такой цепочкой наследования. Мне не разрешено использовать null, поскольку эти объекты используются где-то на уровне наследования, и при использовании «null» будет выдано «исключение Null».
Я хочу попрактиковаться в TDD для добавления изменение класса Manager, но, следовательно, мне нужно сначала создать класс «Manager». Рефакторинг всего остального, чтобы просто сделать Manager, неприемлем.
Я знаю одну технику, которая изменяет аргумент «Пользователь» на интерфейс, но кажется неправильным использовать интерфейс для «Пользователь».
Любой совет?