Уловка для Objective-C? - PullRequest
       12

Уловка для Objective-C?

1 голос
/ 16 марта 2011

Существует ли версия Objective-C Artifice ?

Если нет, как бы я спроектировал / разработал / создал бы это?

Похожие вопросы

1 Ответ

1 голос
/ 03 июня 2011

Думаю, я смогу вам здесь помочь.

У меня есть библиотека 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 может даже быть настроен для возврата некоторых полезных данных отладки в заголовках ответа).

Дайте мне знать, если у вас есть какие-либо вопросы.

...