Карточка Middle Производительность и тестирование обновлено

Тестирование сетевого слоя через URLProtocol

Вопрос

Как протестировать сетевой код без реального сервера и без изменения кода клиента?

Попробуйте сами

Ответьте про себя или вслух, потом откройте ответ и сверьтесь.

Показать ответ и разбор

Коротко

Создать подкласс URLProtocol, который перехватывает запросы и отдаёт заготовленные ответы, и зарегистрировать его в URLSessionConfiguration.protocolClasses тестовой сессии.

Ответ

Создать подкласс URLProtocol, который перехватывает запросы и отдаёт заготовленные ответы, и зарегистрировать его в URLSessionConfiguration.protocolClasses тестовой сессии.

Разбор

Так проверяется весь путь: сборка запроса, заголовки, обработка статусов и декодирование.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.