Модульное тестирование статической библиотеки, которое включает NSDocumentDirectory и другие специфические вызовы приложения iOS - PullRequest
7 голосов
/ 04 января 2011

Я пытаюсь запустить модульные тесты для статической библиотеки, которая пытается создать / записать / прочитать файл в каталоге документов. Поскольку это статическая библиотека, а не приложение для iOS, попытка сослаться на NSDocumentDirectory возвращает мне каталог для формы

"/ Пользователи // Библиотека / Поддержка приложений / iPhone Simulator / Documents"

Этот каталог не существует. При попытке получить доступ к каталогу из реального приложения NSDocumentDirectory возвращает что-то в форме:

"/ Пользователи // Библиотека / Поддержка приложений / iPhone Simulator / 4.2 / FEDBEF5F-1326-4383-A087-CDA1B865E61A / Documents"

(обратите внимание на версию симулятора, а также идентификатор приложения как часть пути)

Как я могу преодолеть этот недостаток в модуле модульных тестов для статических библиотек, которые реализуют тесты, которые требуют специфических вызовов приложений iOS?

Заранее спасибо.

Ответы [ 4 ]

3 голосов
/ 06 января 2011

Я решаю это для себя.На этапе настройки модульного теста я создаю каталог Document, если он не существует, и удаляю его после завершения теста.Это эффективно помогает мне преодолеть блокировку и продолжить мои логические тесты, не беспокоясь о специфике приложений для iOS.

3 голосов
/ 06 января 2011

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

2 голосов
/ 21 июля 2011

Используйте NSLibraryDirectory вместо NSDocumentDirectory только для тестов, определяя макрос TEST препроцессора .

Затем удалите файл в tearDown с помощью:

[[[NSFileManager alloc] init] removeItemAtURL:fileURL error:NULL]
0 голосов
/ 04 января 2011

Каркас gh-unit может запускать модульные тесты в симуляторе или на вашем устройстве.Это не только решит вашу проблему, но и позволит вам отладить ваше приложение (то, чего мне не хватало в других платформах модульного тестирования).

Скачать gh-unit

Как установить gh-unit

...