Сравните их с фрагментами:
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