Android тест-ведущий MVP - PullRequest
       0

Android тест-ведущий MVP

0 голосов
/ 20 октября 2018

У меня есть ведущий для получения данных пользователей.

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)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...