如何使用 Mockito 用 lambda 模拟内联函数

DO *_* IT 7 junit unit-testing mockito kotlin mockito-kotlin

使用 lambda 模拟内联函数时遇到问题。有课UserController,尝试tracer用函数来模拟createSpan

用户控制器类:

class UserController(private val tracer:Tracer) {
  fun subscribeUser() {
    tracer.createSpan("GraphDB: subscribedUser") {
       do something...
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

createSpan内联函数:

inline fun <T> Tracer.createSpan(operationName: String, block: SpanContext.() -> T): T =
    buildSpan(operationName)
        .start()
        .useOn(this, block)
Run Code Online (Sandbox Code Playgroud)

尝试过:

 Mockito.`when`(mockTracer.createSpan<Any>(any(), any())).thenReturn(mockSpanContext)  
Run Code Online (Sandbox Code Playgroud)

回报org.mockito.exceptions.misusing.InvalidUseOfMatchersException

 Mockito.`when`(mockTracer.createSpan<SpanContext>("GraphDB: subscribedUser", any())).thenReturn(mockSpanContext)

Run Code Online (Sandbox Code Playgroud)

回报java.lang.NullPointerException

尝试了不同的方法,但仅返回org.mockito.exceptions.misusing.InvalidUseOfMatchersExceptionjava.lang.NullPointerException

我怎样才能用 lambda 模拟这个内联函数,或者只是忽略它,因为我不想测试这个函数?任何帮助表示赞赏。