如果有人在看这个(6年后),你可以简单地写一个函数,用两个数据对象(假设有效的JSON)来比较:
import Foundation
func areJSONEqual(_ json1: Data, _ json2: Data) -> Bool {
guard let jsonObject1 = try? JSONSerialization.jsonObject(with: json1, options: []),
let jsonObject2 = try? JSONSerialization.jsonObject(with: json2, options: []) else {
return false
}
guard let sortedJSONData1 = try? JSONSerialization.data(withJSONObject: jsonObject1, options: .sortedKeys),
let sortedJSONData2 = try? JSONSerialization.data(withJSONObject: jsonObject2, options: .sortedKeys) else {
return false
}
return sortedJSONData1 == sortedJSONData2
}
然后把它放进你的XCTSCase,
XCTAssertTrue(areJSONEqual(jsonData1, jsonData2))
可以在XCtestCase上做一个扩展, 并随时随地使用。
干杯! 干杯! 干杯! 干杯!