2012-02-12 4 views
0

제 질문은 SenTesking Kit의 일부 내용을 테스트하려고합니다.SenTeskingKit에서 스토리 보드에 액세스 할 수 없습니다.

-(void)testStoryboard { 
    storyBoard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil]; 
    STAssertNotNil(storyBoard, @"Can't access the storyboard"); 
} 

나는 또한 DemoTests.plist에 UIMainStoryboardFile을 추가했지만 이런 종류의 오류가 무엇입니까 :

error: testStoryboard (DemoTests) failed: Could not find a storyboard named 'MainStoryboard' 
in bundle 
NSBundle</Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk/Developer/usr/bin> (loaded) 

답변

1

난 당신이 여기에 번들에 대한 자세한 구체적으로 필요 해요 생각합니다. 이와 같이 번들에 nil을 전달하면 "기본 번들 사용"을 의미하지만 테스트를 실행할 때 메인 번들을 올바르게 호출하면 코드가 아닌 테스트 장치 응용 프로그램 번들이됩니다. 스토리 보드가 테스트 대상의 리소스로 포함되었는지 확인한 다음 스토리 보드 리소스가 테스트 대상 번들에서로드되고 주 번들이로드되지 않도록 테스트에서 명시 적으로 지정해야합니다.

편집 : 일반적으로 이것을 수행하는 좋은 방법은 [NSBundle bundleForClass: [MyClassThatIKnowIsInTheRightBundle class]]을 전달하는 것일 수 있습니다.

+0

답장을 보내 주셔서 감사 드리며 이미 일부 리소스를 통해 확인했습니다. 내가 찾은 것은 같은 번들을 어떻게 사용하는지 분명히 명시해야한다는 것입니다. 어떤 아이디어를 nil 대신에 넣어야합니까? –

+0

@Dmitry Preobrazhenskiy : 그 아이디어를 업데이트했습니다. 아키텍처 i386을위한 – ipmcc

+0

오류 정의되지 않은 심볼 : 에서 참조 "_OBJC_CLASS _ $ _ DemoAppDelegate": DemoTests.o LD에서 objc 수준의-REF : 기호가 아키텍처 i386을 그 소리 찾을 수 없습니다 : 오류 : 링커 명령이 종료 실패했습니다 코드 1 (호출을 보려면 -v 사용) storyBoard = [UIStoryboard storyboardWithName : @ "MainStoryboard"번들 : [NSBundle bundleForClass : [DemoAppDelegate class]]]; –

관련 문제