gpt4 book ai didi

android - 使用 kotlin 在 Android 单元测试中模拟对象 - any() 给出 null

转载 作者:IT老高 更新时间:2023-10-28 13:47:26 26 4
gpt4 key购买 nike

我正在尝试测试我的类,我需要模拟一个 static 类。我的代码如下:

PowerMockito.mockStatic(ToolTipUtil::class.java)
PowerMockito.`when`(ToolTipUtil.wasToolTipShown(any(Context::class.java), "")).thenReturn(true)
val context = mock(Context::class.java)
presenter.onResume(context)
verify(view).setMenuButtonShown(eq(false))

但是在第二行它会抛出一个错误:

"java.lang.IllegalStateException: any(Context::class.java) must not be null"

我试过 mockito-kotlinbefriending-kotlin-and-mockito没有导出。你知道怎么解决吗?

最佳答案

当您调用 any() 时,Mockito 经常返回 null,这会破坏 kotlin 的非 null 参数。

在 mockito-kotlin 中,它们有一个单独的函数,称为 anyOrNull() .

您也可以创建自己的函数,here他们说这也应该有效。

/**
* Returns Mockito.any() as nullable type to avoid java.lang.IllegalStateException when
* null is returned.
*/
fun <T> any(): T = Mockito.any<T>()

关于android - 使用 kotlin 在 Android 单元测试中模拟对象 - any() 给出 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49148801/

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