Кто как мокирует в swift, и как тестировать сервисы?
Пишу тесты для сервисов, кроме того, что сами тесты получаются громоздкими из-за того, что сервис использует 5-6 объектов ( networking, urlProvider, networkingMapper, objectMapper, responseStatusHandler), так ещё и необходимо писать моки для каждого из этих объектов(мне нужно мокировать и классы и структуры). Кто-нибудь знает, есть ли фрэймворк, аналогичный mockito, в котором не надо писать моки самому. Всё что я нарыл, так это то, что свифт поддерживает read-only reflection, которая не позволяет изменять поведение объекта в runtime, следовательно такую либу нельзя написать.
В рантайме создать mock невозможно в свифте к сожалению :( более того, поведение структуры нельзя никак изменить. Поэтому мы используем 2 вещи:
1. Зависимости везде указываются через протоколы
2. Моки нельзя подсунуть в рантайме, но можно генерить на этапе сборки с помощью Sourcery. Эта тула помогает генерировать код автоматически по темплейтам.
Решение не плохое для небольших проектов. У нас используется viper, и количество классов, структур и протоколов очень большое. Я думаю увеличивать их не лучшая идея.