Я недавно начал изучать Mockito, TestObserver для тестирования RxJava.Но когда я пишу тест для этого метода входа, я сталкиваюсь с некоторыми проблемами:
- Мой метод login () вызывает другой закрытый метод из того же класса (LoginViewModel).Как я могу использовать когда .. затем вернуться, чтобы заглушить его результат.
- Метод login () также вызывает метод подписки (Disposable одноразовые) из своего суперкласса BaseViewModel для добавления одноразовых.
- login () также использует переменную класса в выражении «if». (Я также пытаюсьустановить значение для этих переменных, но оно не работает)
Я пытался использовать @sky для инициализации LoginViewModel, но его класс ужина - AndroidViewModel.Я не могу это инициировать.Если у вас есть идеальная или ключевая работа, я действительно ценю это.Спасибо заранее
if (!validate()) {// private method
return;
}
subscribe(
repository.login(username, password)
.observeOn(AndroidSchedulers.mainThread())
.doOnSubscribe(disposable -> getLoadingLiveData().postValue(true))
.doAfterTerminate(() -> getLoadingLiveData().postValue(false))
.subscribe(response -> {
if (response.isSuccess()) {
if (mOrganizationId > 0) { // class variable
//do st
}
String latestVersion = response.getVersion();
String currentVersion = Utils.getVersion();
if (response.isForceUpdate() && !TextUtils.equals(latestVersion, currentVersion)) {
//Notify via Eventbus
return;
}
if (!TextUtils.isEmpty(mToken) && response.getUserId() == mUserId) {
confirmMail(mToken);
} else {
// success
}
} else {
/error
}
}, this::handleError)
);
}