Должен ли я рефакторинг, чтобы иметь возможность использовать насмешки с XCTests? - PullRequest
0 голосов
/ 07 декабря 2018

У меня есть текущая кодовая база, которая имеет все свои функции в своих контроллерах представления.То есть в SignUpViewController у нас есть функция регистрации, которая выполняет регистрацию.Более того, у нас также есть модель User, но у нее нет функции регистрации членов.

Чтобы использовать моделирование и внедрение зависимостей во время тестирования, я должен реорганизовать код так, чтобы модель User имела функцию-член регистрации, а функция регистрации контроллера представления просто получала объект пользователя и вызывалафункция регистрации члена объекта? Или есть лучшая альтернатива?

1 Ответ

0 голосов
/ 08 декабря 2018

Общее правило: писать тесты сложно, ваша архитектура, скорее всего, не очень хорошая.

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

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

...