Вопрос проверяет практическое умение применять mock-объекты для проверки побочных эффектов.
Mock-объект подменяет реальную аналитику в тестах. Он фиксирует факты вызовов и переданные параметры. После выполнения тестируемого кода проверяется состояние mock. Таким образом можно убедиться, что аналитика была вызвана корректно. Реальный трекер при этом не используется.
Mock-объект позволяет наблюдать за взаимодействием тестируемого кода с зависимостями.
Mock реализует тот же протокол, что и реальная аналитика.
final class AnalyticsMock: AnalyticsTracking {
private(set) var events: [String] = []
func track(event: String) {
events.append(event)
}
}
Mock передается в тестируемый объект через конструктор.
Код выполняется
Аналитика не отправляется наружу
Все вызовы фиксируются внутри mock
В тесте проверяется:
Количество вызовов
Название события
Порядок при необходимости
Mock-объект делает поведение аналитики наблюдаемым. Это основной инструмент для тестирования вызовов без реальных побочных эффектов.