Как издеваться над лямбда с мокито в котлине - PullRequest
0 голосов
/ 14 ноября 2018

У меня есть Android-приложение kotlin.Есть функция, которая загружает композиции из бэкэнда и возвращает их в обратный вызов:

getCompositons(callback: (Array<Composition>) -> Unit)

Как я могу смоделировать обратный вызов, используя mockito.Чтобы потом я мог сделать что-то вроде этого:

var callback = //mockito mock
getCompositons(callback) 
verify(callback, timeout(10000)).apply()

Я прочитал, что лямбда-выражения соответствуют функции типа java, и поэтому я предполагаю, что метод apply может быть вызван.Может быть, я мог бы издеваться над функцией и использовать это?Но интерфейс функции Kotlin, похоже, имеет только один возвращаемый тип, без параметров.java.util. Функция говорит о неразрешенной справочной функции.

Любая помощь приветствуется.

1 Ответ

0 голосов
/ 14 ноября 2018

На самом деле это ничем не отличается от насмешек любого другого типа:

val callback = mock<(Array<Composition>) -> Unit>()

getCompositons(callback)

verify(callback)(any())  // Or verify(callback).invoke(any()) to be explicit

(Если вы о них не знали, я использую привязки mockito-kotlin здесь.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...