Думаю, я смогу вам здесь помочь.
У меня есть библиотека Ruby, которая чем-то похожа на уловку, хотя и более автономная и построена поверх Sinatra, и называется Mimic . Я очень доволен этим, и одна из моих любимых функций заключается в том, что помимо настройки с использованием Ruby DSL (или с использованием Sinatra API напрямую), его можно настроить удаленно или из любого процесса, который говорит по HTTP. Это означает, что вы можете использовать его в своих тестах Objective-C и настроить его также из тестов (вместо того, чтобы, скажем, набор внешних приборов в файле Ruby).
Во имя поедания собственного собачьего корма я недавно преобразовал приемочные тесты для своего порта Objective C RestClient, Resty , чтобы использовать Mimic. Демон Mimic запускается как часть процесса сборки, и мои заглушки настраиваются непосредственно в тестах с использованием тонкой оболочки Objective-C вокруг MIMIC REST API.
Как вы можете видеть , я очень стараюсь для ясности теста!
В этих тестах используется OCUnit, но вы можете использовать это с Kiwi. Фактически макрос assertEventually в вышеприведенных тестах был основой поддержки асинхронного тестирования, которую я перенес на Kiwi.
С тех пор я извлек оболочку Objective-C для Mimic из LRResty и переместил ее в хранилище Mimic. Вы можете проверить проект Resty и посмотреть, как настроены мой проект и тесты. Если у вас есть какие либо вопросы, пожалуйста спрашивайте.
Одно предупреждение : я не нашел способа заставить эти тесты успешно запускаться в Xcode 4, используя опцию «Test», из-за способа, которым он выполняется. В Xcode 3 я полагаюсь на фазы сборки Run Script для запуска и остановки демона Mimic, но поскольку Xcode 4 не запускает тесты как часть процесса сборки, это не работает. Я пытался выполнить нечто подобное, используя действия до / после теста, но, к сожалению, они крайне неадекватны из-за различных ошибок .
Дополнительный совет: я считаю Charles Debugging Proxy огромной помощью при работе с веб-сервисами, и вы можете использовать его и с Mimic; оболочка Objective-C может быть передана через Чарльза, чтобы вы могли точно видеть, что происходит, как с точки зрения конфигурации заглушки, так и фактических HTTP-запросов (Mimic может даже быть настроен для возврата некоторых полезных данных отладки в заголовках ответа).
Дайте мне знать, если у вас есть какие-либо вопросы.