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.InvalidUseOfMatchersException
或java.lang.NullPointerException
。
我怎样才能用 lambda 模拟这个内联函数,或者只是忽略它,因为我不想测试这个函数?任何帮助表示赞赏。
归档时间: |
|
查看次数: |
1481 次 |
最近记录: |