我有一個名爲「FFQuestions」的應用程序。我使用了一個名爲QA.json
的本地json文件。在單元測試中使用本地JSON文件
有沒有什麼辦法可以在我的「FFQuestionsTests」文件夾文件中使用QA.json
而不重建文件並將其放入該文件夾中?是否需要用我的代碼更改才能實現?還是像添加「FFQuestionsTests」的Target Membership一樣簡單?
這是我的加載QA.json
方法...
func loadJSONFromFile() -> [String: Any]? {
guard let url = Bundle.main.url(forResource: "QA", withExtension: "json") else {return nil}
guard let data: Data = NSData(contentsOf: url) as Data? else {return nil}
do {
let object = try JSONSerialization.jsonObject(with: data, options: .allowFragments)
guard let dictionary = object as? [String: Any] else {return nil}
return dictionary
} catch {
print("Not parsed")
}
return nil
}
甚至認爲它可能需要在單元測試有所不同,所以我嘗試了做...
func loadJSONFromTestsFile() -> [String: Any]? {
let testBundle = Bundle(for: type(of: self))
let url = testBundle.url(forResource: "QA", withExtension: "json")
guard let data: Data = NSData(contentsOf: url!) as Data? else {return nil}
do {
let object = try JSONSerialization.jsonObject(with: data, options: .allowFragments)
guard let dictionary = object as? [String: Any] else {return nil}
print(dictionary)
return dictionary
} catch {
print("Not parsed")
}
return nil
}
這就是我所嘗試的,但我仍然遇到了nil
崩潰。
你究竟在哪裏有這個'nil'崩潰?哪條線?什麼錯誤信息? –