Mockito ArgumentCaptor für Kotlin-Funktion
Betrachten Sie eine Funktion, die eine Schnittstellenimplementierung als Argument verwendet:
interface Callback {
fun done()
}
class SomeClass {
fun doSomeThing(callback: Callback) {
// do something
callback.done()
}
}
Wenn ich den Aufrufer dieser Funktion testen möchte, kann ich so etwas tun wie
val captor = ArgumentCaptor.forClass(Callback::class)
Mockito.verify(someClass).doSomeThing(captor.capture())
Um zu testen, was die andere Klasse tut, wenn der Rückruf aufgerufen wird, kann ich dann
captor.value.done()
Frage Wie kann ich dasselbe tun, wenn ich die Callback-Schnittstelle durch eine Funktion höherer Ordnung wie @ ersetz
fun doSomeThing(done: () -> Unit) {
// do something
done.invoke()
}
Kann dies mit ArgumentCaptor gemacht werden und welche Klasse muss ich in @ verwendArgumentCaptor.forClass(???)