OCUnit - iOS 5 - 如何在我的应用程序中测试文件?

Posted

技术标签:

【中文标题】OCUnit - iOS 5 - 如何在我的应用程序中测试文件?【英文标题】:OCUnit - iOS 5 - How do I test files in my app? 【发布时间】:2012-03-29 19:01:31 【问题描述】:

我正在尝试构建简单的测试来查看我需要的文件(图像、视频、音频文件)是否在我的应用程序中。每当我尝试做以下事情时:

if (![[NSFileManager defaultManager] fileExistsAtPath:@"Menu Loop.mp3"])
 
    STFail(@"File does not exist");

else

    NSLog(@"Passed");

它说文件不存在。我可以看到文件在那里,我知道它失败了,因为文件在 app 文件夹中,而不是在 test 文件夹中。有没有办法离开测试文件夹来测试文件是否存在而不将所有文件添加到测试文件夹?我曾尝试执行诸如 fileExistsAtPath:@"../appfolder/Menu Loop.mp3" 之类的操作来尝试导航出测试文件夹,但不幸的是,它也无法以这种方式工作。

提前致谢!

【问题讨论】:

【参考方案1】:

您不能通过 ios SDK 直接访问这样的文件夹。您必须使用返回正确路径的系统函数来保存和读取文件:

NSString *rootPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]
NSString *pathToMenuLoopFile = [rootPath stringByAppendingPathComponent:@"Menu Loop.mp3"];

如果您希望加载包含在 Xcode 项目中的文件,请查看此帖子:Loading data files in iPhone project

【讨论】:

以上是关于OCUnit - iOS 5 - 如何在我的应用程序中测试文件?的主要内容,如果未能解决你的问题,请参考以下文章

在我的 XCode 3 上安装 OCUnit 时出现问题

Xcode 5//iOS 6 和 7//TDD:OCUnit 或 XCTest

如何从命令行在 iPhone 上启动 OCUnit 测试

如何使用 Xcode 4 和 OCUnit 运行应用程序测试?

在 OCUnit 应用程序测试中绕过登录/身份验证

如何在单元测试(OCUnit)中访问 NSDocumentDirectory