OCMVerify/ Ожидать в Swift?

Я хотел бы убедиться, что ожидаемый метод вызывается с правильными параметрами в Swift в модульном тестировании. Это было очень легко сделать в Objective-C с помощью фреймворка OCMock. Вы можете сделать комбинацию частичного отслеживания и запуска OCMExpect/Verify, чтобы установить пути к коду с правильными параметрами. Есть идеи, как сделать что-то подобное в Swift?

1 ответ

Решение

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

  1. Создать тестовый подкласс тестируемого класса. Это частичное издевательство. Избегайте этого, если это возможно.
  2. Используйте интерфейс вместо класса. Создать тестовую реализацию интерфейса.

Ручная работа издевается не сложно. Вы хотите

  • Подсчитать количество вызовов метода
  • Захватите свои аргументы
  • Имитировать его возвращаемое значение

Много шаблонного. Существуют библиотеки, которые могут автоматически генерировать этот код.

Другие вопросы по тегам