Как тестировать Presenter без UIKit?
Суть
Presenter в MVP общается с View через протокол, а с сервисами — через инжектированные протоколы. Значит, в тесте:
- вместо View подставляем spy — класс, который реализует протокол и записывает вызовы;
- вместо сервиса — stub, который возвращает заготовленный результат;
- вызываем метод Presenter'а и проверяем, что и с какими данными он сказал View.
UIKit не импортируется, контроллер не создаётся, симулятор не нужен — тест выполняется за миллисекунды и может идти на macOS-хосте.
Продолжение ответа с кодом и уточняющими вопросами интервьюера — в приложении DevPrep.
Полный ответ — в DevPrep