DevPrep

Все темы › Архитектура программного обеспечения

Зачем DI — что меняется при тестировании?

Middle PRO

Суть

Без DI объект сам создаёт зависимости: URLSession.shared, Date(), UserDefaults.standard, синглтон аналитики. В тесте их не заменить, поэтому тест:

С DI зависимости передаются через init, и тест подставляет тестовые двойники — stub (возвращает заготовленные данные), spy (записывает вызовы), fake (упрощённая рабочая реализация, например in-memory репозиторий). Тест становится изолированным, быстрым и повторяемым.

Продолжение ответа с кодом и уточняющими вопросами интервьюера — в приложении DevPrep.

Полный ответ — в DevPrep

Потренируйтесь перед собеседованием

В DevPrep эти ответы превращаются в задачи на минуту: что напечатает код, найди баг, пробное собеседование. По задаче в день.

Скачать DevPrep в App Store