Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про IOS: unit, testing

Как протестировать вызов аналитического события, если метод ничего не возвращает?

Вопрос проверяет понимание unit-тестирования побочных эффектов и работы с mock-объектами.

Короткий ответ

Если метод ничего не возвращает, тестируют не результат, а факт вызова. Для этого используется mock или spy-объект. Он фиксирует, был ли вызван метод и с какими параметрами. В тесте проверяется состояние mock после выполнения кода. Это стандартный подход для проверки side effects.

Длинный ответ

В аналитике почти всегда используются методы без возвращаемого значения, поэтому проверка строится вокруг побочных эффектов.

Что именно нужно проверять

Важно заранее определить критерий успеха.

  • Метод аналитики был вызван

  • Переданы корректные параметры

  • Вызов произошел нужное количество раз

Возвращаемое значение в этом сценарии не требуется.

Использование mock или spy

Создается тестовый double, который реализует тот же интерфейс.

final class AnalyticsMock: AnalyticsTracking {
    var trackedEvents: [String] = []

    func track(event: String) {
        trackedEvents.append(event)
    }
}

Проверка в тесте

После выполнения тестируемого кода проверяется состояние mock.

  • Количество событий

  • Название события

  • Порядок вызовов при необходимости

Вывод

Методы без возвращаемого значения тестируются через проверку их эффектов. Mock или spy-объект — основной инструмент для таких тестов.

  • Аватар

    iOS Guru

    Roman Isakov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    5

  • Сложность:

    6

Навыки

  • IOS

    IOS

Ключевые слова

#unit

#testing

Подпишись на iOS Developer в телеграм

  • Аватар

    iOS Guru

    Roman Isakov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.