3

次の 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: に対する回答が見つかりません: Observer(#4).onChanged(Loading(value=true))

4

1 に答える 1

1

あなたの例外はそれをすべて(そして直接的な答えの1つ)言います.モックの動作を常に指定する必要があります..

あなたの場合:

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 { ... }し、例の部分を探します

お役に立てれば。

于 2019-05-09T06:15:37.430 に答える