2012-10-15 159 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