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 次 |
| 最近记录: |