我试图跳过Single.delay(),而我的测试因错误而掉线:

java.lang.AssertionError:未完成(闩锁= 1,值= 0,错误= 0,完成= 0)

val testScheduler = TestScheduler()
RxJavaPlugins.setComputationSchedulerHandler { testScheduler }

Single.just("")
        .delay(1, TimeUnit.SECONDS, testScheduler)
        .test()
        .assertComplete()

testScheduler.advanceTimeBy(1, TimeUnit.SECONDS)

这段代码可以与Observable一起使用,是否可以跳过Single的.delay()?

最佳答案

您甚至在移动时间之前就断言。分别声明:

val testScheduler = TestScheduler()

val to = Single.just("")
        .delay(1, TimeUnit.SECONDS, testScheduler)
        .test()

to.assertEmpty();

testScheduler.advanceTimeBy(1, TimeUnit.SECONDS)

to.assertComplete();

同时设置默认调度程序并与操作员一起使用自定义调度程序是没有意义的。

10-05 17:57