我正在尝试为以下代码块编写单元测试:
Observable.interval(INITIAL_DELAY, REFRESH_PERIOD, TimeUnit.SECONDS)
.flatMap {thisMethodReturnsAnObservable()}
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(this::onDataLoaded, this::onError)
.disposeLater())
我有一个测试规则,该规则会用有效的testSchedulers覆盖RxSchedulers。
重要:这些测试可以一个一个地运行,但不能一起运行,而且覆盖范围错误,并且错误也相同。
答案 0 :(得分:0)
默认情况下,Observable.interval
在计算调度程序上运行。因此,您将需要使用带调度程序的Observable.interval
的重载,或将Schedulers.computation
添加到测试规则中。
Observable.interval(INITIAL_DELAY, REFRESH_PERIOD, TimeUnit.SECONDS, [Your scheduler here])
答案 1 :(得分:0)
在我的测试规则中添加ComputationSchedulerHandler可以解决我的问题。