Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 在单元测试中使用本地JSON文件_Swift_Unit Testing_Xctest - Fatal编程技术网

Swift 在单元测试中使用本地JSON文件

Swift 在单元测试中使用本地JSON文件,swift,unit-testing,xctest,Swift,Unit Testing,Xctest,我有一个名为“FFQ”的应用程序。我使用一个名为QA.json的本地json文件 有什么方法可以在我的“FFQuestionsTests”文件夹文件中QA.json而不重新创建文件并将其放到该文件夹中?我是否需要用我的代码来更改它?还是像添加“FFQuestionsTests”的目标成员一样简单 这是我加载QA.json的方法 甚至认为在单元测试中可能需要做一些不同的事情,所以我尝试了 所以这就是我尝试过的,但我仍然遇到了一个nil崩溃。简单到添加“FFQuestionsTests”的目标成员身

我有一个名为“FFQ”的应用程序。我使用一个名为
QA.json
的本地json文件

有什么方法可以在我的“FFQuestionsTests”文件夹文件中
QA.json
而不重新创建文件并将其放到该文件夹中?我是否需要用我的代码来更改它?还是像添加“FFQuestionsTests”的目标成员一样简单

这是我加载
QA.json
的方法

甚至认为在单元测试中可能需要做一些不同的事情,所以我尝试了


所以这就是我尝试过的,但我仍然遇到了一个
nil
崩溃。

简单到添加“FFQuestionsTests”的目标成员身份

你到底在哪里遇到了这个
nil
崩溃?哪一行?什么错误消息?用于单元测试的代码是第一个还是第二个?FFT的会员资格是什么意思?在问题中,FFQuestionsTest被认为是一个文件夹,而不是一个文件。@e如果代码是第一个和第二个,那么重要的是我选中了添加目标成员资格框。很简单!我只能让单元测试工作,类似于第二个代码,第一个代码只能与应用程序代码一起工作。我的问题是关于你说你检查的目标,如果它只能在文件上完成,而不是在文章中提到的文件夹上,那么FFQuestionsTests就是一个文件夹。也许可以更新问题以澄清。
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
}