Проверьте функцию Kotlin как параметр в unittest - PullRequest
1 голос
/ 04 июня 2019

Я пытаюсь проверить функцию kotlin в параметре в модульном тесте, но не удалось.Вот мой код

Модульный тест:

verify(moveToNextStepUseCase).execute(validateStepAssemblyUseCase.validate(ID),
                { view.showCompleteAssemblyConfirmDialog(type) },
                { view.showCompleteAssemblyErrorDialog() })

Мой moveToNextStepUseCase код:

interface MoveToNextStepUseCase {
    fun execute(validator: () -> Observable<Boolean>, successAction: () -> Unit, errorAction: () -> Unit)
}

Мой телефонный код:

moveToNextStepUseCase.execute(
                                        validateStepAssemblyUseCase.validateMissingAssembly(assignmentId),
                                        { view.showCompleteAssemblyConfirmDialog(currentStepId) },
                                        { view.showCompleteAssemblyErrorDialog() }
                                )

Но я получил ошибку после запуска теста:

Argument(s) are different! Wanted:
moveToNextStepUseCase.execute(
    Function0<io.reactivex.Observable<java.lang.Boolean>>,
    (move next assembly step incomplete case$1) Function0<kotlin.Unit>,
    (move next assembly step incomplete case$2) Function0<kotlin.Unit>
);

Actual invocation has different arguments:
moveToNextStepUseCase.execute(
    Function0<io.reactivex.Observable<java.lang.Boolean>>,
    () Function0<kotlin.Unit>,
    () Function0<kotlin.Unit>
);

Кто-нибудь знает, почему параметр пустой в фактическом вызове?()

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