Модульное тестирование и разработка iPhone - PullRequest
1 голос
/ 27 октября 2010

В настоящее время я использую OCUnit, который поставляется с Xcode 3.2.4 для выполнения модульного тестирования моего приложения. Мой рабочий процесс часто состоит в том, чтобы установить некоторые точки останова в случае неудачного юнит-теста, чтобы быстро проверить состояние. Я использую настройки Apple OCUnit:

http://developer.apple.com/library/ios/#documentation/Xcode/Conceptual/iphone_development/135-Unit_Testing_Applications/unit_testing_applications.html

но установка сверху вызывает у меня некоторые головные боли. Apple различает тесты приложений и тесты логики. Как я это вижу:

  • Вы не можете отлаживать логические тесты. Как будто они незаметно запускаются, когда вы строите свой проект.

  • Вы можете отлаживать тесты приложений, но вы должны запускать их на устройстве, а не на симуляторе (с чем это связано?)

Это означает, что все идет медленно с моим текущим рабочим процессом. Любые советы по запуску тестов приложения на симуляторе? Или какие-нибудь пин-указатели на другой тест-фреймворк? Был бы, например. google-toolbox-for-mac лучше работает вообще или для моих конкретных потребностей?

Также приветствуются общие комментарии по использованию контрольных точек в модульных тестах! : -)

Ответы [ 2 ]

1 голос
/ 27 октября 2010

В прошлом я использовал тестовую установку Google Toolbox, и она работала нормально, она работала как на симуляторе, так и на устройстве, и я мог отлаживать свои тесты, если бы захотел.Недавно мне надоело связывать так много кода с каждым из моих проектов, и я попробовал способ Apple.

Я также нахожу странным разделение тестов логики / приложений, тем более что я не могу найти какой-либо способ отладкилогические тесты сейчас.(И если вы используете некоторые части AVFoundation, которые не будут собираться для Simulator, вам явно не повезло с логическими тестами полностью, что кажется странным.) Одним из плюсов является то, что я могу быстро запускать логические тестыво время сборки.

Полагаю, это не сильно вам поможет - дело в том, что вы можете отлаживать тесты под GTM.И вы также можете проверить этот связанный вопрос .

0 голосов
/ 28 октября 2010

Я знаю, что это не очень хороший ответ и не совсем помогает вашему делу.Но я использовал NSLog для запуска своих модульных тестов (если ничего не выводится на консоль, значит успех).Когда я закомментирую свой метод тестов, тесты не будут выполняться.Я нашел это гораздо более предсказуемым и надежным, чем OCUnit.Я бы предпочел использовать настоящий истинный тестер модулей, но он слишком расстраивает, чтобы иметь дело с часто странными ошибками, которые могут возникнуть в OCUnit, а также с другими недостатками / отсутствием функций, которые вы описали выше.

...