2014-09-18 1 views
0

У меня есть макрос для целей тестирования, который создает контроллер навигации, устанавливает его как контроллер корневого представления главного окна и помещает контроллер просмотра в тестовый контроллер внутри навигационного контроллера.Как разбить метод с использованием Kiwi

Я также хотел бы для каждого вызова pushViewController:animated: изменить анимированный параметр на NO.

Как я могу это достичь?

Я попытался использовать stub:withBlock:, а затем вызвал pushViewController:animated: внутри блока с нажатием контроллера вида (params [0]) и NO, но это приводит к бесконечному циклу.

Существует также stub:withArguments:, но в этом случае у меня нет ссылки на контроллер, который вызывается, поскольку это макрос, используемый в нескольких местах.

Единственный способ, которым я мог подумать, это использовать stub:withBlock:, а внутри блока удалить заглушку и нормально позвонить pushViewController:params[0]:NO, но я не смог найти способ удалить заглушку.

Любая помощь?

ответ

0

Функциональность набивки Kiwi на самом деле не предназначена для этого.

Есть две основные вещи, это:

  • Разделительный код тестируемой от остальной части системы (путем замены реализации метода с поддельным)
  • Making утверждения о контракте API между объекты в системе

Если вы хотите глобально изменить поведение метода по умолчанию, я думаю, что то, за чем вы находитесь, является более универсальным решением для зависания метода. Функциональные возможности Kiwi могут быть реализованы частично с swizzling, но это гораздо более целенаправленный инструмент.

 Смежные вопросы

  • Нет связанных вопросов^_^