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

时间:2018-03-03 07:38:15

标签: kotlin mockito

我正在使用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)

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

1 个答案:

答案 0 :(得分:2)

这看起来像是一个可空性问题。 Mockito在Kotlin中的可空类型效果不佳。

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

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

的内容
ArgumentMatchers.anyOrNull<String>(), isNull(), isNull()

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