2012-10-15 212 views
0

我目前正在爲我的應用程序實施一些簡單的單元測試。iOS模擬器訪問測試資源

一個簡單的測試用例就是用一個預定義的文件實例化一個AVAudioPlayer。該測試在設備上完美運行。但是,如果我使用模擬器測試應用程序,顯然會使用其他文件夾結構,因爲測試資源不會複製到tmp文件夾。

這是手機上使用的路徑:

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

我實現了一個簡單的檢查,如果我在模擬器上:

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

所以其路徑應,如果我」我用m在模擬器上? (我知道我可以使用硬編碼的路徑資源,但這個項目將在不同的計算機上運行,​​所以我不能把它放在那裏..)

感謝您的幫助......

回答

1

你正在使用錯誤的方法。

可以使用獲得的束路徑:

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

這將返回整個路徑(包括Tests.octest)

HTH 馬蒂亞斯

+0

感謝。按預期工作.. – dominik