У меня есть ведущий для получения данных пользователей.
class ListUserPresenterImpl @Inject constructor(val view: ListUserView,
val context: Context,
private val rxSchedulers: RxSchedulers,
private val interactor: ListUserInteractor) : ListUserPresenter {
private val compositeDisposable = CompositeDisposable()
override fun loadUser(name: String) {
view.showProgress(true)
compositeDisposable.add(getThreadData(name).subscribe(::handleSuccess, ::handleError))
}
private fun getThreadData(name: String): Single<List<DataUserItem>> {
compositeDisposable.clear()
return interactor.getListUser(name)
.subscribeOn(rxSchedulers.getSchedulersIO())
.observeOn(rxSchedulers.getSchedulersMainThread())
.doFinally { view.showProgress(false) }
}
private fun handleSuccess(list: List<DataUserItem>) {
view.showListUser(list)
}
private fun handleError(throwable: Throwable) {
view.showError()
}
}
Я хочу написать тест для проверки вызова view.showListUser (list).Я попробовал несколько вариантов, но они не сработали.Как я могу это сделать?
Это мой тест:
@Before
fun initPresenter() {
view = Mockito.mock(ListUserView::class.java)
val interactor = ListUserInteractorImpl(repository = ListUserRepositoryImpl(FakeGitApi(), DataUserItemMapper()))
presenter = ListUserPresenterImpl(view, Mockito.mock(Context::class.java), TestRxSchedulers(), interactor)
}
@Test
fun testLoadUser() {
presenter.loadUser(USER_NAME)
verify(view).showError()
}
Тест завершен, следующий результат
Требуется, но не вызывается: view.showError ();-> at ru.portfolio.GitClient.list_user.TestListUserPresenter.testLoadUser (TestListUserPresenter.kt: 41) Однако с этим макетом было ровно 1 взаимодействие: view.showProgress (true);-> at ru.portfolio.GitClient.presentation.list_user.presenter.ListUserPresenterImpl.loadUser (ListUserPresenterImpl.kt: 37)
Требуется, но не вызывается: view.showError ();-> at ru.portfolio.GitClient.list_user.TestListUserPresenter.testLoadUser (TestListUserPresenter.kt: 41) Однако с этим макетом было ровно 1 взаимодействие: view.showProgress (true);-> at ru.portfolio.GitClient.presentation.list_user.presenter.ListUserPresenterImpl.loadUser (ListUserPresenterImpl.kt: 37)