Я пытаюсь создать модульные тесты для метода моего ViewModel, который использует RxJava / RxKotlin .
fun doLogin(address: String, serial: String) {
mLoading.value = true
mCompositeDisposable.add(
mRepository
.doLogin(address, createJsonArray(serial, generatePinJSON()))
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribeBy(
onSuccess = { json ->
/** CODE **/
},
onError = { error ->
/** CODE **/
}
)
)
}
Но когда Schedulers.io () вызывается в методе test, он вызывает исключение NullPointerException.
Я пытался использовать этот подход ниже:
https://medium.com/@dbottillo/how-to-unit-test-your-rxjava-code-in-kotlin-d239364687c9 (создание правила)
https://medium.com/@PaulinaSadowska/writing-unit-tests-on-asynchronous-events-with-rxjava-and-rxkotlin-1616a27f69aa (передача планировщиков в ViewModel)
В обоих подходах говорится, что используется Schedulers.trampoline () в методе испытаний. Но все равно выдает ошибку.
У меня заканчиваются варианты, не могу понять, почему это происходит.
Может ли кто-нибудь мне помочь?
Спасибо.