Модульное тестирование функции с использованием Mockito с обратным вызовом лямбда - PullRequest
0 голосов
/ 14 июля 2020

У меня есть функция, которая принимает обратный вызов и возвращает событие в зависимости от результата.

override fun startLocal(callback: (eventType: EventType) -> Unit) {
        pickingSDK.startPicking(tripInfo) {
            when (it.eventName) {
                Events.CONFIRM_CHECKOUT -> callback.invoke(PickingEventType.CONFIRM)
                Events.ERROR -> callback.invoke(EventType.ERROR)
                Events.PICK_CANCEL -> callback.invoke(EventType.CANCEL)
            }
        }
    }

Проблема в том, как мне запускать callback.invoke(PickingEventType.CONFIRM) при выполнении модульных тестов с использованием Mockito. Я сделал что-то подобное, но это не работает

doAnswer {
            val argument = it.arguments[0]
            val callback = argument as ((eventType: EventType) -> Unit)
            callback.invoke(EventType.CONFIRM)
            null
        }.`when`(myClass).startLocal { ArgumentMatchers.any()}

verify(view).goToPickup() // is called if event is EventType.CONFIRM

Но обратный вызов не запускается. Пожалуйста, помогите

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