我在尝试理解如何测试我的应用程序,我还在学习使用 mockito
,我也看到了 mockk
,但无法使它工作。这是我的 Presenter
。
class MyPresenterImpl @Inject constructor(var myUseCase: MyUseCase) : MyContract.Presenter {
private var mView: MyContract.View? = null
private var disposable: Disposable? = null
override fun attachView(view: MyContract.View) {
this.mView = view
this.mView?.showProgressBar(true)
}
override fun loadResults() {
disposable = getList.execute()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(
{ result ->
mView?.showProgressBar(false)
mView?.showResults(result)
},
{ error ->
mView?.showProgressBar(false)
mView?.showError(error.localizedMessage)
})
}
override fun rxJavaUnsuscribe() {
if (disposable != null && !disposable!!.isDisposed) {
disposable!!.dispose()
}
}
override fun detachView() {
this.mView = null
}
}
我应该如何测试这个Presenter?我需要添加所有这些方法吗?
我试图使用mockito
进行测试,但我也可以使用mockk
。
有些人告诉我要使用Schedulers
并使用trampoline
,但我不太清楚,能否有人提供一个示例或稍微解释一下?
develop
分支更新为rx java支持。虽然我不经常使用rx java,但我尝试添加了TrampolineScheduler
和SimpleScheduler
测试以更好地理解何时使用哪种。请查看测试用例,因为它具有模拟服务,当调用时将返回所需的值。 - Harneev