【发布时间】:2018-04-05 08:25:38
【问题描述】:
我在使用 JUnit 测试功能时遇到了与解析 JSON 相关的问题。我想测试我的解析逻辑。在执行测试用例时,我收到一条错误消息:
java.lang.RuntimeException: Method getString in org.json.JSONObject not mocked
我读到需要为测试提供额外的依赖,因为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)
}
【问题讨论】:
-
你能把剩下的测试用例贴出来吗?
-
@JanVladimirMostert 请看一下我编辑的帖子
-
您在使用
robolectric.org吗?如果是这样,使用@RunWith(RobolectricTestRunner.class)注释您的测试类应该可以正确模拟 JSONObject。 -
我没用,希望不用
Robolectric也能解决问题。如果没有,我一定会使用它。