我在使用 JUnit 测试功能时遇到解析 JSON 的问题。我想测试我的解析逻辑。当我执行测试用例时,我收到一条错误消息:
java.lang.RuntimeException:未模拟 org.json.JSONObject 中的方法 getString
我读到需要为测试提供额外的依赖,因为 org.json
是随 Android SDK 一起提供的,所以我已经放入 gradle 中:
testImplementation 'org.json:json:20180130'
不幸的是,这没有效果。当我在 JSON 对象上执行函数 getString()
时发生错误:
json.getString(JSON_TYPE)
有没有人遇到过类似的问题,知道如何处理?
//编辑
这是负责解析并导致问题的函数(缩写形式):
fun parse(jsonString: String) {
val json = JSONObject(jsonString)
val type = json.getString(JSON_TYPE) //here occurs an error
val id = json.getString(JSON_ID)
}
最佳答案
您需要将以下内容添加到 build.gradle 中: 下面的代码适用于我,当我需要在测试中解析 Json
android {
// ...
testOptions {
unitTests.returnDefaultValues = true
}
}
和
dependencies {
//...
testImplementation 'org.json:json:20180813'
}
关于Android org.json.JSONObject 在单元测试中返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49667567/