Организация тестовых файлов iOS OCUnit в XCode - PullRequest
2 голосов
/ 30 ноября 2011

Я добавляю модульные тесты в существующий проект iOS, используя OCUnit с Xcode 4.2.Я успешно добавил новую цель сборки (следуя инструкциям здесь: http://twobitlabs.com/2011/06/adding-ocunit-to-an-existing-ios-project-with-xcode-4/) и настроил несколько тривиальных примеров тестов, просто чтобы проверить, могу ли я запускать тесты и они работают как положено.

У меня вопрос о добавлении большего количества тестовых файлов и о том, как их организовать. Существующая база кода обширна и содержит сотни классов, для которых нам рано или поздно понадобится добавить тесты. Очевидно, что все тесты будут помещены в автосгенерированный файл «UnitTests.m» был бы безумием. Я вижу, что могу добавить больше файлов, используя шаблон «Objective-C Test Case Class», но мне не ясно, как это связано с всеобъемлющим «UnitTest.m», который XCodeгенерируется, когда я добавляю цель теста.

Ищет ли XCode все тестовые файлы для цели теста и запускает все тесты? Если да, то имеет смысл сгенерировать новый файл теста для каждого класса, который яЯ тестирую, и не имею ничего в основном файле "UnitTests.m". Если это так, могу ли я безопасно удалить этот файл, так какне будет содержать никаких тестов?Или он должен остаться для запуска других тестов в других файлах?

1 Ответ

5 голосов
/ 01 декабря 2011

Xcode изначально настроен на запуск всех модульных тестов для файлов, которые являются членами цели модульного тестирования.В вашей ситуации вы должны создать новый тестовый файл для каждого класса, который вы тестируете.При создании нового файла убедитесь, что вы добавляете файл в цель модульного тестирования, а не в цель приложения.XCode первоначально добавляет файл к цели приложения.

Вы можете удалить файл UnitTest.m.Каждый созданный вами файл модульного теста содержит достаточно информации для запуска тестов.Вы также можете использовать редактор схем, чтобы контролировать, как Xcode выполняет ваши тесты.

Обновление Xcode 5

Xcode 5 добавляет тестовый навигатор, который позволяет вам запустить один тестзапустите все тесты для тестового класса или запустите все тесты.Тестовый навигатор уменьшает необходимость использовать редактор схем для управления тем, как Xcode выполняет ваши тесты.

...