gpt4 book ai didi

java - 无法在 Kotlin JUnit 4 测试中捕获异常

转载 作者:太空宇宙 更新时间:2023-11-04 10:33:16 25 4
gpt4 key购买 nike

我想在单元测试中检查字符串是否具有有效的 JSON 格式。

为此,我尝试从字符串创建一个新的 JSONObject 并捕获任何可能引发的异常。

但是,当运行下面的代码时,没有捕获异常

@Test
fun checkFunctionWithStringToJSONTest() {
val invalidJSON = "INVALIDJSON--"
try {
JSONObject(invalidJSON)
} catch (ex: Exception) {
try {
JSONArray(invalidJSON)
} catch (ex1: Exception) {
assert(false)
}
}
assert(true)
}

在调试器中计算相同的表达式表明应该抛出异常,但永远不会被捕获。

为什么会发生这种情况?

我在 Android studio Android 项目中使用 JUnit 4.12hamcrest-library:1.3Kotlin 1.2.31

编辑:正如此处指出的https://stackoverflow.com/a/32822468/3708094JSONObject 是 android 框架的一部分,在单元测试中不可用。这很可能与上述问题的原因有关。

即使它不可用,也不会捕获任何异常,但根据调试器评估工具会抛出一些异常。

最佳答案

正如怀疑的那样,问题的根源在于 JSONObject 是 Android 系统库的一部分。

对我来说,解决方案是手动将 gradle 中的 JSONObject 添加到 testImplementation

dependencies {
...
testImplementation 'org.json:json:20180130'
}

关于java - 无法在 Kotlin JUnit 4 测试中捕获异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49771945/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com