2013-04-08 2 views
2

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

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

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

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

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

ответ

6

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

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

Для тестовых случаев, главное-расслоение или ваше приложение не является главным расслоением.

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

+0

Спасибо, что сработало. Какая разница между двумя вызовами и причиной того, что исходный вызов не работает в тестовом комплекте? – Gruntcakes

+0

differnce между основным комплектом и комплектом для самокласса. :) –

 Смежные вопросы

  • Нет связанных вопросов^_^