Вопрос проверяет базовые навыки создания test doubles и работы с состоянием.
Счетчик хранится как свойство mock-объекта. Он увеличивается при каждом вызове метода. Свойство обычно делают доступным только для чтения извне. Это позволяет безопасно проверять количество вызовов. Такой подход прост и нагляден.
Тестовый double должен хранить минимальное состояние, необходимое для проверки.
Счетчик размещается внутри mock-объекта.
Как Int свойство
С увеличением при каждом вызове
Без сложной логики
Хорошая практика — скрывать изменение счетчика.
private(set) var callCount = 0
Это предотвращает случайное изменение из теста.
При более сложных сценариях можно хранить:
Массив событий
Параметры вызовов
Временные метки
Счетчик вызовов — базовый, но эффективный инструмент тестирования. Он позволяет точно контролировать количество взаимодействий с зависимостями.