在单元测试

时间:2017-04-05 20:52:16

标签: swift unit-testing xctest

我有一个名为“FFQuestions”的应用。我使用名为QA.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崩溃。

1 个答案:

答案 0 :(得分:1)

这就像为#34; FFQuestionsTests"

添加目标会员资格一样简单