kotlin测试whith mockito:比较失败

我试图用简单的测试主持人来覆盖,看起来像下一个:

class Presenter{ fun getData(params:SomeParams) { usecase.execute(getObservable, params) } private fun getObservable() = object :DisposableObserver{ 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 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) 

所以我得到这个错误,以及如何避免它,并与测试覆盖这种方法? 谢谢!

One Solution collect form web for “kotlin测试whith mockito:比较失败”

你正试图比较两个不同的实例:一个是由Mockito( mock )创建的,一个是由PresentergetObservable )创建的。 这两个不相等,所以Mockito给比较失败。

相反,你可以使用any

 verify(useCase).execute(any(DisposableObserver::class.java), eq(someParams)) 
  • Android - SharedPreferences - 上下文
  • 为什么我不能指定我的Kotlin文件在Android Studio中的位置?
  • 如何在Kotlin中实现OnClickListener接口?
  • Kotlin到Java(图书馆帮助)
  • 从Android Studio中的播放图标开始检测测试,将它们作为JVM上的JUnit运行
  • 如何从Firebase中的表中同步获取所有行?
  • 从资源字符串数组创建ArrayList
  • 项目不会与Kotlin 1.1.3一起构建
  • Kotlin代码如何在Android应用程序中执行,与Java有什么不同?
  • Android Kotlin创建类实现Parcelable在writeToParcel方法的“覆盖”中给出一个错误
  • FIRESTORE持久性数据
  • Kotlin language will be the best programming language for Android.