Я реализовал архитектуру MVI для приложения android, но не могу написать ни одного успешного теста.
Это пример:
fun verifyLoadStateSuccess() {
val loading= State(isLoading = true)
val loaded = State(list)
whenever(listUseCase.loadList()).thenReturn(Observable.just(list))
viewModel.dispatch(Action.Load)
testSchedulerRule.triggerActions()
inOrder(testObserver) {
verify(testObserver).onChanged(loading)
verify(testObserver).onChanged(loaded)
}
verifyNoMoreInteractions(testObserver) // if i comment this line, the test pass ok
}
Я получаю сообщение об ошибке:
No interactions wanted here:
-> at com.nhaarman.mockito_kotlin.MockitoKt.verifyNoMoreInteractions(Mockito.kt:258)
But found this interaction on mock 'observer':
-> at androidx.lifecycle.LiveData.considerNotify(LiveData.java:131)
***
For your reference, here is the list of all invocations ([?] - means unverified).
1. [?]-> at androidx.lifecycle.LiveData.considerNotify(LiveData.java:131)
Я запустил код с отладчиком и проверил на reducer
, как может вызываться время и с какими значениями для state
, но это только в два раза с правильными значениями.
Я не понимаю, что это за метод considerNotify
, который говорит, что он вызван и как я могу добавить его в свой тест.