gpt4 book ai didi

android - Schedulers.io() 在我的单元测试中抛出 NullPointerException

转载 作者:行者123 更新时间:2023-11-29 22:45:54 25 4
gpt4 key购买 nike

我正在尝试为下面使用 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()。但它仍然抛出错误。

我的选项用完了,无法弄清楚为什么会这样。

有人可以帮助我吗?

谢谢。

最佳答案

根据我的经验,你得到 null 是因为你没有模拟 mRepository.doLogin。尝试在测试函数的开头添加它

whenever(mRepository.doLogin).thenReturn(...)

关于android - Schedulers.io() 在我的单元测试中抛出 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58512028/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com