2012-02-12 69 views
0

我的問題是,我正在嘗試從SenTesking Kit中測試一些東西。無法從SenTeskingKit訪問故事板

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

我還添加了UIMainStoryboardFile到DemoTests.plist但我得到這樣那樣的錯誤:

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

感謝您的回答,我已經通過一些資源檢查了這一個。我發現我應該以某種方式明確指定如何使用相同的包。任何想法,我應該把而不是零? – 2012-02-12 14:24:29

+0

@Dmitry Preobrazhenskiy:更新了這個答案。對於i386硬件架構 – ipmcc 2012-02-12 15:07:27

+0

錯誤未定義的符號: 「_OBJC_CLASS _ $ _ DemoAppDelegate」,從引用: objc級,裁判在DemoTests.o LD:符號(S)沒有找到i386硬件架構 鐺:錯誤:連接命令,退出失敗代碼1(使用-v來查看調用)storyBoard = [UIStoryboard storyboardWithName:@「MainStoryboard」bundle:[NSBundle bundleForClass:[DemoAppDelegate class]]]; – 2012-02-12 15:40:20