Ответ 1
Чтобы ответить на ваши вопросы:
- Почему важна отдельная тестовая цель?
Разделение проблем. Цель unit test не имеет такой же структуры, как и обычная целевая программа - она содержит тестовый комплект, который ссылается на целевую аудиторию приложения, а также на классы тестов и любые вспомогательные классы. Это не дубликат целевого приложения с добавленным тестовым кодом - на самом деле он даже не должен содержать тестируемый код. Это означает, что вам не нужно прилагать особых усилий, чтобы синхронизировать тестовую цель с главной целью приложения - тот факт, что тестовый комплект загружает основное приложение, обрабатывает все, что для вас. (Вы прокомментировали ответ Ричарда Росса на ваш предыдущий q, предполагающий, что вы уже столкнулись с проблемами дублирования трудности).
- Как мне это сделать? (проверено на Xcode 7).
Предполагая, что вы хотите добавить цель в существующий проект, который не имеет каких-либо тестов, выберите основной проект и нажмите "+" под списком целей в проекте. Вы также можете использовать опцию File- > New- > Target.
Вы увидите меню с просьбой выбрать шаблон для своей новой цели. Выберите "Тест", и в тесте выберите "Блок тестирования модулей iOS".
Проверьте поля на следующем экране - они должны быть правильными по умолчанию - но вам может потребоваться дважды проверить значение поля "Целевое тестирование", если у вас много целей в проекте/рабочей области. Нажмите "ОК", и у вас должен быть функциональный пакет unit test, с примером теста, который вы сможете запустить с помощью Apple-U или Product- > Test. Вам все равно нужно #import
классы приложений, используя ObjC.
Если вы создаете новый проект, все, что вам нужно сделать, это отметить флажок "Включить Unit Test" при создании проекта - никаких других шагов не требуется.
-
Apple Docs (со ссылками на соответствующие презентации WWDC)
-
Учебники. Большинство учебных пособий немного устарели. Но не так много изменилось, так что просто взгляните на документы и выясните это. Эти два ниже могут быть полезными, иначе просто Google. С быстрым взглядом большинство из них, похоже, полагают, что проект имел модульные тесты, настроенные в начале
http://www.raywenderlich.com/22590/beginning-automated-testing-with-xcode-part-12 (2012/iOS 6, но процесс по-прежнему в целом одинаковый). Также касается Jenkins, Git и работает тесты из CLI).
Тестирование модулей в OSX - последнее сообщение, не относящееся к iOS, я знаю, но более современное, чем большинство учебников iOS (октябрь 2015) и дает пошаговые инструкции (включая настройку unit test target в схемах построения, что, вероятно, не понадобится в вашем случае). Наверное, стоит взглянуть в любом случае.