Как написать моки в Swift без фреймворков: протоколы, замыкания, spy?
Суть
В Swift нет runtime-подмены методов, поэтому тестовые двойники пишут руками — и это дешевле, чем кажется. Почти всё покрывают три приёма: протокол + класс-двойник, который одновременно записывает вызовы (spy) и отдаёт настраиваемый ответ (stub); структура замыканий, где каждую функцию зависимости подменяют по отдельности; и Result как настройка ответа, чтобы один двойник проверял и успех, и ошибку.
Продолжение ответа с кодом и уточняющими вопросами интервьюера — в приложении DevPrep.
Полный ответ — в DevPrep