Вопрос проверяет знание принципов тестируемости и работы с внешними зависимостями.
Аналитику нужно выносить за абстракцию, даже если сам трекер нельзя менять. Обычно создают обертку или прокси. В тестах используется mock этой обертки. Так можно проверить факт вызова аналитики без изменения трекера. Это стандартный подход для тестирования сторонних SDK.
Закрытые SDK часто нельзя модифицировать напрямую, но это не означает, что их нельзя тестировать.
Вокруг трекера создается собственный слой.
Приложение работает с интерфейсом
Реальный трекер используется в продакшене
В тестах подставляется mock
protocol AnalyticsTracking {
func track(event: String)
}
Обертка:
Изолирует внешний SDK
Делает код тестируемым
Упрощает замену реализации
Сам трекер остается нетронутым.
В тестах проверяется:
Был ли вызван метод
С какими параметрами
Сколько раз
Даже закрытый трекер можно тестировать, если он используется через абстракцию. Это обязательная практика для стабильных unit-тестов.