我有一个 Xcode 5 单元测试项目和一些与之相关的测试 xml 文件。我尝试了很多方法,但似乎无法加载 xml 文件。

我试过以下不起作用

NSData* nsData = [NSData dataWithContentsOfFile:@"TestResource/TestData.xml"];

NSString* fileString = [NSString stringWithContentsOfFile:@"TestData.xml" encoding:NSUTF8StringEncoding error:&error];

此外,如果我尝试使用 [NSBundle allBundles] 预览所有包,单元测试包没有出现在列表中?

我试图创建一个单独的资源包,但我似乎无法以编程方式找到它,尽管它确实得到了构建和部署。

我究竟做错了什么 ?

最佳答案

在运行测试时,应用程序包仍然是主包。您需要使用单元测试包。

目标 C:

NSBundle *bundle = [NSBundle bundleForClass:[self class]];
NSString *path = [bundle pathForResource:@"TestData" ofType:@"xml"];
NSData *xmlData = [NSData dataWithContentsOfFile:path];

斯威夫特 2:
let bundle = NSBundle(forClass: self.dynamicType)
let path = bundle.pathForResource("TestData", ofType: "xml")!
let xmlData = NSData(contentsOfFile: path)

Swift 3 及更高版本:
let bundle = Bundle(for: type(of: self))
let path = bundle.path(forResource: "TestData", ofType: "xml")!
let xmlData = NSData(contentsOfFile: path)

关于xcode - 在 xcode 单元测试中加载文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19151420/

10-14 20:57
查看更多