Как подменить сеть в тестах: протокол-клиент или URLProtocol?
Суть
Сеть подменяют на одном из двух уровней. Протокол-клиент: код зависит от своего HTTPClient, в тесте подставляется стаб, который сразу возвращает Data. URLProtocol: код работает с настоящим URLSession, но в его конфигурацию регистрируется подкласс URLProtocol, который перехватывает запросы и отвечает заготовкой. Первый способ проверяет логику над сетью, второй — сам сетевой слой: сборку URLRequest, заголовки, статус-коды и декодирование.
Продолжение ответа с кодом и уточняющими вопросами интервьюера — в приложении DevPrep.
Полный ответ — в DevPrep