Карточка Middle Производительность и тестирование обновлено
Тестирование сетевого слоя через URLProtocol
Вопрос
Как протестировать сетевой код без реального сервера и без изменения кода клиента?
Попробуйте сами
Ответьте про себя или вслух, потом откройте ответ и сверьтесь.
Показать ответ и разбор
Коротко
Создать подкласс URLProtocol, который перехватывает запросы и отдаёт заготовленные ответы, и зарегистрировать его в URLSessionConfiguration.protocolClasses тестовой сессии.
Ответ
Создать подкласс URLProtocol, который перехватывает запросы и отдаёт заготовленные ответы, и зарегистрировать его в URLSessionConfiguration.protocolClasses тестовой сессии.
Разбор
Так проверяется весь путь: сборка запроса, заголовки, обработка статусов и декодирование.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Ещё по теме «Производительность и тестирование»
- Тест в Swift Testing
- Hang и hitch: разница
- Сколько памяти занимает декодированная картинка
- Приложение пропадает без крэш-лога
- Задача на Swift: статистика рывков по длительностям кадров
- Задача на Swift: худший отрезок кадров скользящим окном
- Как ускорить запуск приложения
- Шаблоны Instruments