Unit testing RxJava可观测区间的单元测试;背景已经改变;错误
我正在尝试为下面的代码块编写单元测试:Unit testing RxJava可观测区间的单元测试;背景已经改变;错误,unit-testing,kotlin,mockito,junit4,rx-java2,Unit Testing,Kotlin,Mockito,Junit4,Rx Java2,我正在尝试为下面的代码块编写单元测试: Observable.interval(INITIAL_DELAY, REFRESH_PERIOD, TimeUnit.SECONDS) .flatMap {thisMethodReturnsAnObservable()} .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread())
Observable.interval(INITIAL_DELAY, REFRESH_PERIOD, TimeUnit.SECONDS)
.flatMap {thisMethodReturnsAnObservable()}
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(this::onDataLoaded, this::onError)
.disposeLater())
我有一个测试规则,它用有效的测试调度器覆盖RXScheduler
重要测试可以一个接一个地运行,但不能全部一起运行,也可以在覆盖率被破坏的情况下运行,并出现相同的错误
我得到的错误是,当调试器点击onDataLoaded
方法时,测试的运行立即停止,并显示以下消息:
默认情况下,
可观察。间隔
在计算计划程序上运行。因此,您需要使用重载的Observable.interval
来获取调度程序,或者将调度程序.computation
添加到您的测试规则中
Observable.interval(初始延迟、刷新周期、TimeUnit.SECONDS,[您的调度程序在此])
在测试规则中添加一个CalculationSchedulerHandler解决了我的问题