2

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

用户控制器类:

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

createSpan内联函数:

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

试过:

 Mockito.`when`(mockTracer.createSpan<Any>(any(), any())).thenReturn(mockSpanContext)  

返回org.mockito.exceptions.misusing.InvalidUseOfMatchersException

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

返回java.lang.NullPointerException

尝试了不同的方法,但只返回org.mockito.exceptions.misusing.InvalidUseOfMatchersExceptionor java.lang.NullPointerException

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

4

0 回答 0