我试图更好地了解如何使用 Rx-Kotlin 进行单元测试,但我无法成功地将主题设置为“已完成”。结果,我总是在等待 5 秒的超时(onComplete 应该是立即的),然后在 assertComplete 上失败。
我对awaitTerminalEvent的理解是,它应该只在调用 onComplete 之前阻塞。我也研究了TestScheduler,但我不认为这里应该需要它。
任何可以引导我走向正确方向的帮助或文档将不胜感激。
@Test
fun testObservable() {
val subject = BehaviorSubject.create<Int>()
subject.onNext(0)
TestSubscriber<Int>().apply {
subject.subscribe({
System.out.println(it)
subject.onNext(1)
subject.onComplete()
})
this.awaitTerminalEvent(5, TimeUnit.SECONDS)
this.assertComplete()
this.assertValue(1)
}
}