使用 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.InvalidUseOfMatchersException
or java.lang.NullPointerException
。
我怎样才能用 lambda 模拟这个内联函数或忽略它,因为我不想测试这个函数?任何帮助表示赞赏。