Mockito.anyString() 在 Kotlin 中因 NPE 崩溃

2024-04-19

我正在使用浓缩咖啡,我想为内容解析器创建一个模拟响应。

当我使用时:

`when`(context.activity.contentResolver.query(
        ArgumentMatchers.isA(Uri::class.java), 
        ArgumentMatchers.isA(Array<String>::class.java), 
        ArgumentMatchers.anyString(), null, null))
.thenReturn(matrixCursor)

我收到错误:

java.lang.NullPointerException: uri 
at com.android.internal.util.Preconditions.checkNotNull(Preconditions.java:128)

在这种情况下是否可以为内容解析器创建模拟响应?


这看起来像是一个可空性问题。 Mockito 在 Kotlin 中不能很好地处理可空类型。

有一个库可以处理这个问题:https://github.com/nhaarman/mockito-kotlin https://github.com/nhaarman/mockito-kotlin

我建议你检查一下任意或空() https://github.com/nhaarman/mockito-kotlin/blob/1.x/mockito-kotlin/src/main/kotlin/com/nhaarman/mockito_kotlin/Mockito.kt#L47在这里尝试类似的东西

ArgumentMatchers.anyOrNull<String>(), isNull(), isNull()

Read 本文 https://medium.com/@elye.project/befriending-kotlin-and-mockito-1c2e7b0ef791充分了解问题以及如何在不同的情况下处理它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Mockito.anyString() 在 Kotlin 中因 NPE 崩溃 的相关文章

随机推荐