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