Mockito ArgumentCaptor para a função Kotlin
Considere uma função que aceita uma implementação de interface como um argumento como este:
interface Callback {
fun done()
}
class SomeClass {
fun doSomeThing(callback: Callback) {
// do something
callback.done()
}
}
Quando quero testar o chamador dessa função, posso fazer algo como
val captor = ArgumentCaptor.forClass(Callback::class)
Mockito.verify(someClass).doSomeThing(captor.capture())
Para testar o que a outra classe faz quando o retorno de chamada é chamado, eu posso fazer
captor.value.done()
Pergunta, questão: Como posso fazer o mesmo se substituir a interface de retorno de chamada por uma função de alta ordem como
fun doSomeThing(done: () -> Unit) {
// do something
done.invoke()
}
Isso pode ser feito com ArgumentCaptor e qual classe eu tenho que usar noArgumentCaptor.forClass(???)