Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unit testing RxJava可观测区间的单元测试;背景已经改变;错误_Unit Testing_Kotlin_Mockito_Junit4_Rx Java2 - Fatal编程技术网

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解决了我的问题