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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mockito.anyString()在Kotlin中与NPE崩溃相关的知识,希望对你有一定的参考价值。

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

我用的时候:

`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

我建议你在这里查看anyOrNull()并尝试类似的东西

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

阅读this article以充分了解问题以及如何处理任何不同的场景。

以上是关于Mockito.anyString()在Kotlin中与NPE崩溃的主要内容,如果未能解决你的问题,请参考以下文章

android RecyclerView pinch zoom,ScaleGestureDetector&GridLayoutManager,with BigImageViewer,kotli

谷歌:选用Kotlin的五大理由

Kotlin 等效于三元运算符 [重复]

Kotlin初识Kotlin

CHAQUOPY - 将 Python 对象转换为 Kotlin 类

无法在 Kotlin Multiplatform 项目中引用 kotlinx.cinterop 包