首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RxJava未在UniTest Android中运行(不是androidTest)

RxJava未在UniTest Android中运行(不是androidTest)
EN

Stack Overflow用户
提问于 2019-09-03 07:25:13
回答 1查看 262关注 0票数 0

我重新介绍了rxjava,并在Unitest中播放RxJava,但是可观察到的不运行。

代码语言:javascript
复制
@Test
fun notepad(){
    val scheduler = TestScheduler()
    val subscriber = TestObserver<String>()
    RxJavaPlugins.setComputationSchedulerHandler{ scheduler }
    Single.just("Data Local")
        .toObservable()
        .subscribeOn(Schedulers.computation())
        .observeOn(Schedulers.computation())
        .map { "Map Local" }
        .observeOn(Schedulers.computation())
        .flatMap { Observable.just(1) }
        .map { "Map Remote" }
        .startWith { "StartWith" }
        .onErrorReturn { "Error Return" }
        .subscribe(subscriber)
    scheduler.advanceTimeBy(2, TimeUnit.SECONDS)
    print("${subscriber.hasSubscription()}")
}

但是subscriber.hasSubscription()返回false。我如何才能得到onNext值,或者是因为我明显的错误?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-03 07:39:03

RxJava v2有着非常有用的方法test。它提供了以简单的方式测试可观察性的功能。以这种方式重写测试,并使用许多提供RxJava的断言方法:

您已编辑的代码

代码语言:javascript
复制
@Test
fun notepad(){
    val scheduler = TestScheduler()
    val subscriber = TestObserver<String>()
    RxJavaPlugins.setComputationSchedulerHandler{ scheduler }
    Single.just("Data Local")
        .toObservable()
        .subscribeOn(Schedulers.computation())
        .observeOn(Schedulers.computation())
        .map { "Map Local" }
        .observeOn(Schedulers.computation())
        .flatMap { Observable.just(1) }
        .map { "Map Remote" }
        .startWith { "StartWith" }
        .onErrorReturn { "Error Return" }
        .test()
        .await()
        .assertValueAt(0) { startString->
                yourString == "StartWith"
            }
        .assertValueAt(1) { mapString->
                mapString == "Map Remote"
            }
    scheduler.advanceTimeBy(2, TimeUnit.SECONDS)
}

如果你想了解它更多的结帐此链接

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57766856

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档