所以我已将文件testJson1.json
添加到我的项目中。
在单元测试中,我试图在没有运气的情况下获取文件路径:
NSBundle *bundle = [NSBundle bundleForClass:[self class]];
NSString *filepath = [bundle pathForResource:@"testJson1.json" ofType:@"json"];
当我查看项目文件时,我可以奇怪地看到该文件被添加到资源中,我认为单元测试文件不会被添加到资源中以保持应用程序的大小。
8AA238811C5565E80031648E /* testJson1.json in Resources */ = {isa = PBXBuildFile; fileRef = 8AA2387F1C5565E80031648E /* testJson1.json */; };
我错过了什么?
答案 0 :(得分:2)
您只需要从资源名称中删除.json
,因为这不需要:)
NSString *filepath = [bundle pathForResource:@"testJson1" ofType:@"json"];
答案 1 :(得分:0)
对我有用的是:
let url = Bundle.main.url(forResource: "data", withExtension: ".json")
guard let dataURL = url, let data = try? Data(contentsOf: dataURL) else {
fatalError("Couldn't read data.json file") }
区别在于我用.json
而不是json
来标记扩展名
答案 2 :(得分:0)
假设您在上面的图片中有一个Test类,名为...
final class TagNewsTests: XCTestCase {
在func test()方法中,以这种方式加载包...
let url = Bundle(for: TagNewsTests.self).url(forResource: "testJson1", withExtension: "json")