2012-02-12 13 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

あなたの答えをありがとう、私はすでにいくつかのリソースを介してこの1つをチェックしていた。私が見つけたのは、同じバンドルの使い方を何とか明確に指定する必要があるということです。どのようなアイデアを私は何の代わりに配置する必要がありますか? –

+0

@Dmitry Preobrazhenskiy:そのアイデアで答えを更新しました。 i386アーキテクチャのための – ipmcc

+0

エラー未定義のシンボル: にObjCクラス-REF DemoTests.o LD中:記号(S)i386アーキテクチャ 打ち鳴らす見つかりません:エラー:から参照 "_OBJC_CLASS _ $ _ DemoAppDelegate"、リンカコマンドが終了で失敗しましたコード1(呼び出しには-vを使用します)storyBoard = [UIStoryboard storyboardWithName:@ "MainStoryboard"バンドル:[NSBundle bundleForClass:[DemoAppDelegate class]]]; –

関連する問題