Mockito / Kotlin: встроенный макет меняет свое поведение - PullRequest
0 голосов
/ 03 июля 2019

Сравните их с фрагментами:

val mock = mock<MutableLiveData<UUID>> { on { value } doReturn y }
`when`(x).thenReturn(mock)

и

`when`(x).thenReturn(mock<MutableLiveData<UUID>> { on { value } doReturn y })

Почему первый фрагмент работает нормально, тогда как второй, со вставленным макетом, выдаст org.mockito.exceptions.misusing.UnfinishedStubbingException?

Сообщение об ошибке Mockito:

org.mockito.exceptions.misusing.UnfinishedStubbingException: 
Unfinished stubbing detected here:
-> at com.xxx.android.ClassTest$testName$1.invokeSuspend(ClassTest.kt:579)

E.g. thenReturn() may be missing.
Examples of correct stubbing:
    when(mock.isOk()).thenReturn(true);
    when(mock.isOk()).thenThrow(exception);
    doThrow(exception).when(mock).someVoidMethod();
Hints:
 1. missing thenReturn()
 2. you are trying to stub a final method, which is not supported
 3: you are stubbing the behaviour of another mock inside before 'thenReturn' instruction if completed

Mockito версия 2.22.0, Kotlin версия 1.3.31

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