kotlin test whith mockito: сравнение Failure

Я пытаюсь покрыть тестовым простым презентатором, который выглядит следующим образом:

class Presenter{ fun getData(params:SomeParams) { usecase.execute(getObservable, params) } private fun getObservable() = object :DisposableObserver<SomeData>{ override fun onComplete() {} override fun onNext(t:SomeData) {} override fun onError(e: Throwable) {} } } 

вот мой простой тест:

 @Test fun getContacts() { presenter.getData() var observer = Mockito.mock(DisposableObserver::class.java) as DisposableObserver<SomeData> verify(useCase).execute(observer, someParams) } 

и после последней строки я получаю следующую ошибку:

 Argument(s) are different! Wanted: useCase.execute( com.test.PresenterTest$getObservable$o$1@579d011c, kotlin.Unit ); -> at com.test.execute(UseCaseObservable.kt:37) Actual invocation has different arguments: useCase.execute( com.test.Presenter$getObservableObserver$1@733c423e, kotlin.Unit ); -> at com.test.Presenter.getObservable(Presenter.kt:43) 

так что я получаю эту ошибку и как ее избежать и покрыть этот метод с помощью теста? благодаря!

Вы пытаетесь сравнить два разных экземпляра с eachother: один, созданный Mockito ( mock ), и один, созданный Presenter ( getObservable ). Эти два не равны друг другу, поэтому Mockito дает отказ сравнения.

Вместо этого вы можете использовать any :

 verify(useCase).execute(any(DisposableObserver::class.java), eq(someParams))