Android Espresso 与 Rx Completable 不同步

Android Espresso not synchronized with Rx Completable

我遇到 Espresso 没有等待 Completable 完成的问题,所以我的 UI 测试失败了

apiDataSource.getData()
             .flatMap { data ->
                    cacheDataSource.saveData(data)
                    .andThen(Observable.just(cacheDataSource.getData()))

有没有办法保持 Espresso 线程直到 cacheDataSource.saveData(data) 完成? 提前谢谢你

原因是您在 assemble flatMap 中的保存序列时调用了 cacheDataSource.getData()。来自 just 的文档:

Note that the item is taken and re-emitted as is and not computed by any means by just. Use fromCallable(Callable) to generate a single item on demand (when Observers subscribe to it).

apiDataSource.getData()
         .flatMap { data ->
                cacheDataSource.saveData(data)
                .andThen(Observable.fromCallable { cacheDataSource.getData() })
         }