0

私の質問は、SenTesking Kit からいくつかのものをテストしようとしているということです。

-(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)
4

1 に答える 1

1

ここでバンドルについてより具体的に説明する必要があると思います。このようなバンドルを渡すnilと、「メイン バンドルを使用する」ことを意味しますが、テストを実行するときにメイン バンドルを正しく思い出すと、コードではなく、テスト ハーネス アプリケーション バンドルになります。ストーリーボードがリソースとしてテスト ターゲットに含まれていることを確認する必要があると思います。次に、メイン バンドルではなく、テスト ターゲット バンドルからストーリーボード リソースをロードすることをテストで明示的に指定する必要があります。

編集:通常、これを行う良い方法は、渡すこと[NSBundle bundleForClass: [MyClassThatIKnowIsInTheRightBundle class]]です。

于 2012-02-12T13:47:18.930 に答える