Mockito 可以用于匹配 Kotlin 中函数的参数吗?

Fut*_*ked 6 mockito kotlin

我有一个函数,其原型类似于:

class objectToMock {

    fun myFunc(stringArg: String, booleanArg: Boolean = false, functionArg: (String) -> Any = { 0 }): String

}
Run Code Online (Sandbox Code Playgroud)

我想能够存根,myFunc但无法弄清楚如何。就像是

@Mock
lateinit var mockedObject: ObjectToMock

@Before
fun setup() {
    MockitoAnnotations.initMocks(this)
    `when`(mockedObject.myFunc(anyString(), anyBoolean(), any())).thenReturn("")
}
Run Code Online (Sandbox Code Playgroud)

使用any()notNull()都导致java.lang.IllegalStateException: any() must not be null

Fut*_*ked 3

这里的解决方案是使用anyOrNullhttps://github.com/nhaarman/mockito-kotlin 或者自己实现该帮助器。