Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kotlin 如何验证是否对参数具有lambda表达式的模拟对象调用函数_Kotlin_Junit_Mockito - Fatal编程技术网

Kotlin 如何验证是否对参数具有lambda表达式的模拟对象调用函数

Kotlin 如何验证是否对参数具有lambda表达式的模拟对象调用函数,kotlin,junit,mockito,Kotlin,Junit,Mockito,假设我有一个名为 fun doSomething() { customObject.callThis(10, 20) } customObject是类customObject的对象,它使用Mockito进行模拟。下面是为上述代码编写的单元测试 @Test fun doSomething() { // Call the doSomething() function verify(customObject).callThis(10, 20) } 这很好用。现在,当我们编写

假设我有一个名为

fun doSomething() {
    customObject.callThis(10, 20)
}
customObject是类
customObject
的对象,它使用Mockito进行模拟。下面是为上述代码编写的单元测试

@Test
fun doSomething() {
    // Call the doSomething() function
    verify(customObject).callThis(10, 20)
}
这很好用。现在,当我们编写
doSomething
函数如下时,我产生了怀疑

fun doSomething() {
    customObject.callThis(10, { navigation.finish() })
}

其中导航是类导航的模拟对象。现在,如何测试上述函数?

如果您使用的是mockito kotlin,您可以执行以下操作:

import com.nhaarman.mockitokotlin2.inOrder
import com.nhaarman.mockitokotlin2.eq
import com.nhaarman.mockitokotlin2.any

inOrder {
    verify(customObject).callThis(eq(10), any())
    verify(navigation).finish()
}

我将验证是否对传入的对象调用了
finish()
方法。如果API上有订购保证,可以使用一个
索引
。@BoristheSpider您能详细介绍一下解决方案吗。我不明白你的意思。我也不知道InOrder的意思。我认为eq(值)对我来说是一个很好的学习方法。