не могу загрузить файлы из NSBundle в тестовом модуле iphone - PullRequest
1 голос
/ 31 марта 2011

Я использую XCode 4.

Может кто-нибудь объяснить мне, почему, когда я написал модульный тест (в соответствии с целью тестирования), он не может найти мой локальный файловый ресурс? Я пытаюсь загрузить файл plist из NSBundle в модульном тесте, но он не работает в цели модульного теста. Я пытался бросить его под область классов цели теста.

Вот мой код:

NSString *path = [[NSBundle mainBundle] bundlePath];
NSString *finalPath = [path stringByAppendingPathComponent:@"urlMappings.plist"];
self.urlMappings  = [NSDictionary dictionaryWithContentsOfFile:finalPath];

self.urlMappings по какой-то причине пуст, хотя urlMappings.plist определенно существует в моем проекте. Вот источник urlMappings.plist, который доказывает, что это словарь.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>%server%view.html</key>
    <string>testHtml1.html</string>
</dict>
</plist>

Есть идеи? Thankyou

Ответы [ 2 ]

7 голосов
/ 22 августа 2013

Под целью теста не следует использовать [NSBundle mainBundle], потому что это основной пакет, а не тестовый пакет.вы должны использовать [NSBundle bundleForClass: [self class]] replace.

0 голосов
/ 31 марта 2011

Решение (которое не имеет смысла) состоит в том, что его не было в пакетных ресурсах главной цели. Он должен быть в комплекте ресурсов обоих целей, хотя я использую его только в тесте.

Кто-нибудь знает, почему это так?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...