测试RxJava:AdvanceTime无法在简单的延迟可流动对象中使用

问题描述 投票:1回答:1

我有一个非常简单的函数,可以延迟给定的值:

Flowable.defer<Effect> { Flowable.just(Effect.Success) as Publisher<out Effect> }
  .delay(2, TimeUnit.SECONDS)
  .subscribeOn(computationScheduler)
  .observeOn(mainScheduler)

我尝试像这样来测试它在CalculationScheduler中的时间是否提前:

  private val mainScheduler = Schedulers.trampoline()
  private val computationScheduler = TestScheduler()

  @Test
  fun solve() {
    val testObserver = actor.invoke(Action.Solve).test()

    computationScheduler.advanceTimeBy(3, TimeUnit.SECONDS)

    testObserver.assertValues(Effect.Success)
  }

没有延迟,这是可行的,但似乎我无法设法适当地延长时间。预先感谢您的帮助

unit-testing kotlin rx-java2
1个回答
0
投票

根据您正在调用的delay方法的javadocs:

© www.soinside.com 2019 - 2024. All rights reserved.