2

何かをすばやくテストするために、アプリのバンドルにテスト ファイルを追加し、NSBundle:pathForResource を使用してデリゲートにロードしました。これはうまくいきました。

ただし、ユニットテストタイプのターゲットを作成し、ファイルとコードをこの新しいターゲットに追加しましたが、ロードできません。

[バンドル リソースのコピー] を使用してファイルをテスト ターゲットに追加しました。これは、それをロードするための完全なコードです。

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

アプリ バンドル ターゲットの一部だったのに、なぜロードできたのかわかりませんが、ロードされないテスト バンドルに移動しました。

4

1 に答える 1

6

これを試してください:

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

テスト ケースの場合、メイン バンドルまたはアプリはメイン バンドルではありません。

クラスのバンドルに自分でアクセスする必要があります。

于 2013-04-08T17:45:13.413 に答える