「FFQuestions」というアプリがあります。私はQA.json
と呼ばれるローカルjsonファイルを使用します。ユニットテストでのローカルJSONファイルの使用
私は "FFQuestionsTests"フォルダファイルにQA.json
を使用してファイルを作り直してそのフォルダにドロップする必要はありませんか?それを得るためにコードを変更する必要がありますか?それとも、「FFQuestionsTests」のターゲットメンバーシップを追加するだけの簡単なことですか?
これはロード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
のクラッシュが発生しています。
のターゲットメンバーを追加するような単純なものでしたか?どの線?どのようなエラーメッセージですか? –