【问题标题】:Mockito.anyString() crashes with NPE in KotlinMockito.anyString() 在 Kotlin 中与 NPE 崩溃
【发布时间】:2018-03-03 07:38:15
【问题描述】:

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

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

【问题讨论】:

  • 另一个问题是在模拟函数时不应该混合匹配器和实际参数。而不是null, null,你应该使用isNull(), isNull()

标签: kotlin mockito


【解决方案1】:

这看起来像是一个可空性问题。 Mockito 不适用于 Kotlin 中的可为空类型。

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

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

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

阅读this article 以全面了解该问题以及如何在不同情况下处理它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-07
    • 2017-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-01
    相关资源
    最近更新 更多