【问题标题】:Mockito: Mock an invokable paramMockito:模拟一个可调用的参数
【发布时间】:2020-04-08 07:54:02
【问题描述】:

要测试的 Kotlin 函数:

suspend fun <T: Any> handleSomething(call: suspend () -> Result<T>) {

    if (call.invoke() == "Something") {
        ...
    }
    else {
        ...
    }
}

我想在这里模拟 call。 通常我会嘲笑:

val call = Mockito.mock(SomeClass::class.java)

但我不知道参数是这样的功能

【问题讨论】:

    标签: unit-testing kotlin mocking mockito


    【解决方案1】:

    原答案:https://stackoverflow.com/a/53306974/11377112

    这是模拟 lambda 函数的方式:

    val call = Mockito.mock<suspend () -> Result<T>>()
    
    handleSomething(call)
    
    verify(call)()
    // Or verify(call).invoke(any()) to be explicit
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-29
      • 1970-01-01
      相关资源
      最近更新 更多