Рассмотрим функцию, которая реализует реализацию интерфейса как аргумент следующим образом:
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(???)