0

現在、アプリにいくつかの簡単な単体テストを実装しています。

簡単なテストケースの 1 つは、事前定義されたファイルを使用して AVAudioPlayer をインスタンス化することです。このテストは、デバイス上で完全に機能します。ただし、シミュレーターを使用してアプリをテストすると、明らかに別のフォルダー構造が使用されます。これは、テスト リソースが tmp フォルダーにコピーされないためです。

これは電話で使用されるパスです:

soundPath = [[NSString alloc] initWithFormat:@"%@Tests.octest/%@", NSTemporaryDirectory(), fileName];

シミュレーターを使用しているかどうかを確認する簡単なチェックを実装しました。

 if (TARGET_IPHONE_SIMULATOR)
        soundPath = @"";
    else
      ...

シミュレーターを使用している場合、どのパスを使用すればよいですか? (リソースへのハードコードされたパスを使用できることはわかっていますが、このプロジェクトは別のコンピューターで実行されるため、そこに配置することはできません..)

ご協力いただきありがとうございます...

4

1 に答える 1

1

間違った方法を使用しています。

バンドルパスは、次を使用して取得できます。

NSBundle *bundle = [NSBundle bundleForClass:[self class]];
soundPath = [bundle bundlePath];

これにより、パス全体(Tests.octestを含む)が返されます

HTHマティアス

于 2012-10-15T16:48:11.177 に答える