测试单次延迟

时间:2018-10-01 15:35:08

标签: unit-testing kotlin rx-java2

我试图跳过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()?

1 个答案:

答案 0 :(得分:1)

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

val testScheduler = TestScheduler()

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

to.assertEmpty();

testScheduler.advanceTimeBy(1, TimeUnit.SECONDS)

to.assertComplete();    

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