11
考虑一个函数,它的接口实现作为这样一个论点:的Mockito ArgumentCaptor的科特林功能
interface Callback {
fun done()
}
class SomeClass {
fun doSomeThing(callback: Callback) {
// do something
callback.done()
}
}
当我想测试此函数的调用者,我可以这样做
val captor = ArgumentCaptor.forClass(Callback::class)
Mockito.verify(someClass).doSomeThing(captor.capture())
要测试什么其他类并调用回调的时候,我可以再做
captor.value.done()
问:我怎么可以这样做,如果我有一个高阶函数代替回调接口一样
fun doSomeThing(done:() -> Unit) {
// do something
done.invoke()
}
可以这样用ArgumentCaptor做,我有什么类ArgumentCaptor.forClass(???)
我已经有了这个库,你可以提供一个例子,如何使用ArgumentCaptor调用一个函数,被传递给模拟? – FWeigl
更新了一个例子。 – mfulton26
我越来越captor.capture()不能为空:( –