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()不能爲空:( –