【发布时间】:2020-02-19 01:29:11
【问题描述】:
我正在尝试为下面使用 RxJava/RxKotlin 的 ViewModel 的方法创建 单元测试。
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()时,会抛出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()。但它仍然抛出错误。
我没有办法了,不知道为什么会这样。
有人可以帮我吗?
谢谢。
【问题讨论】:
标签: android unit-testing rx-java2 rx-kotlin2