gpt4 book ai didi

java - 当在 AndroidSchedulers.mainThread() 上观察到 Observable 时,Android JUnit 测试无限期阻塞

转载 作者:太空宇宙 更新时间:2023-11-03 13:54:05 36 4
gpt4 key购买 nike

我正在编写一个简单的测试,相当于:

Test fun testObservable() {
val returnedObservable = Observable.create(object : Observable.OnSubscribe<String> {
override fun call(t: Subscriber<in String>) {
t.onNext("hello")
t.onCompleted()
}

}).subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())

val result = returnedObservable.toBlocking().first()
assertEquals("hello", result)
}

.observeOn(AndroidSchedulers.mainThread()) 出现时,测试将在 returnedObservable.toBlocking().first() 上无限期阻塞。

有没有办法转换可观察对象以返回结果?

returnedObservable 是从方法调用返回的,其中已经应用了 .subscribeOn 和 .observeOn,因此删除它们不是一个选项。

最佳答案

我想这是这里提到的错误:https://github.com/ReactiveX/RxAndroid/issues/50

顺便说一句,你为什么不使用 RxKotlin

你的例子看起来会好得多:

    val returnedObservable = observable<String> { subscriber ->
subscriber.onNext("hello")
subscriber.onCompleted()
}
.subscribeOn(Schedules.io())
.observeOn(AndroidSchedulers.mainThread())

关于java - 当在 AndroidSchedulers.mainThread() 上观察到 Observable 时,Android JUnit 测试无限期阻塞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31875893/

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