我有一个 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/