org.mockito.exceptions.verification.NoInteractionsWanted: модульный тест не пройден - MVI-архитектура - PullRequest
2 голосов
/ 30 марта 2020

Я реализовал архитектуру 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, который говорит, что он вызван и как я могу добавить его в свой тест.

...