2013-04-08 4 views
2

신속하게 테스트하려면 응용 프로그램 번들에 테스트 파일을 추가하고 NSBundle : pathForResource를 사용하여 위임에로드하십시오. 이것은 효과가 있었다.응용 프로그램 번들에서 파일을로드 할 수 있지만 테스트 응용 프로그램 번들에서 파일을로드 할 수 없음

그러나 지금은 단위 테스트 유형의 대상을 만들고이 새로운 대상에 파일과 코드를 추가했지만로드 할 수 없습니다.

나는 복사 번들 리소스를 사용하여 테스트 대상에 파일을 추가 한,이 그것을로드의 전체 코드입니다 :

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

내가 알아낼 수 없습니다 내가 그것이로드 할 수없는 이유 앱 번들 타겟의 일부 였지만 지금은로드하지 않는 테스트 번들로 이동했습니다. 테스트 케이스를 들어

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

, 주요-번들 또는 앱의 주요 번들되지 않습니다 :

답변

6

이 하나를 시도하십시오.

클래스의 번들에 직접 액세스해야합니다.

+0

감사합니다. 두 번 호출의 차이점과 원래 번 호가 테스트 번들에서 작동하지 않는 이유는 무엇입니까? – Gruntcakes

+0

main-bundle과 bundle-for-self-class 간의 차이가 있습니다. :) –