Возможность загрузки файла из пакета приложений, но не из пакета тестового приложения

Чтобы быстро что-то протестировать, я добавил тестовый файл в пакет моего приложения и загрузил его в делегате, используя NSBundle:pathForResource. Это сработало.

Однако теперь я только что создал цель типа Unit Testing и добавил файл и код в эту новую цель, но не могу ее загрузить.

Я добавил файл в тестовую цель с помощью Copy Bundle Resources, и это полный код для его загрузки:

NSBundle *mainBundle = [NSBundle mainBundle];
NSString *xmlFilePath = [mainBundle pathForResource:@"TestServerResponse" ofType:@"xml"];
STAssertNotNil(xmlFilePath, @"Unable to open file TestServerResponse.xml")

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


person Gruntcakes    schedule 08.04.2013    source источник


Ответы (1)


Попробуй это:

NSBundle *testBundle=[NSBundle bundleForClass:[self class]];
NSString *testBundlePath=[testBundle pathForResource:@"TestServerResponse" ofType:@"xml"];

Для тестовых случаев основной пакет или ваше приложение не являются основным пакетом.

Вам нужно получить доступ к пакету для вашего класса самостоятельно.

person Anoop Vaidya    schedule 08.04.2013
comment
Спасибо, это сработало. В чем разница между двумя вызовами и по какой причине исходный вызов не работает в тестовом пакете? - person Gruntcakes; 08.04.2013
comment
Разница между основным пакетом и пакетом для себя. :) - person Anoop Vaidya; 08.04.2013