Попытка преобразовать этот тест Mockito в Mockk приводит к ошибке - PullRequest
1 голос
/ 22 апреля 2019

Возникли проблемы со следующим преобразованием из Mockito в Mockk.

Итак, у меня есть это

@Mock
private lateinit var loginLiveDataObserver: Observer<LoginResult>

val inOrder = inOrder(loginLiveDataObserver)

inOrder.verify(loginLiveDataObserver).onChanged(enableLoading)
inOrder.verify(loginLiveDataObserver).onChanged(loginResults)
inOrder.verify(loginLiveDataObserver).onChanged(disableLoading)

Попробуйте превратить его в это

private val loginLiveDataObserver = mockk<Observer<LoginResult>>()

verifyOrder {
    loginLiveDataObserver.onChanged(enableLoading)
    loginLiveDataObserver.onChanged(loginResults)
    loginLiveDataObserver.onChanged(disableLoading)
}

Дает мнеследующая ошибка

io.mockk.MockKException: не найден ответ для: Наблюдатель (# 4) .onChanged (Загрузка (значение = true))

1 Ответ

0 голосов
/ 09 мая 2019

Ваше исключение говорит само за себя (и один из прямых ответов), вы всегда должны указывать поведение ваших издевательств ..

в вашем случае:

private val loginLiveDataObserver = mockk<Observer<LoginResult>>()

// Example answer you can use different here
every { loginLiveDataObserver.onChange(any()) } answers nothing

verifyOrder {
    loginLiveDataObserver.onChanged(enableLoading)
    loginLiveDataObserver.onChanged(loginResults)
    loginLiveDataObserver.onChanged(disableLoading)
}

Проверьте Документацию на данный момент и найдите every { ... } деталь в примере

надеюсь, это поможет.

...