加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

单元测试 – 如何模拟调用onError的改进服务observable?

发布时间:2020-12-15 05:13:52 所属栏目:Java 来源:网络整理
导读:我正在测试这段代码. service.getProducts() .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new SubscriberResultCatalogSoajsProductPreview() { @Override public void onError(Throwable e) { view.showErrorVie
我正在测试这段代码.

service.getProducts()
            .subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(new Subscriber<Result<Catalog<SoajsProductPreview>>>() {

                @Override
                public void onError(Throwable e) {
                    view.showErrorView(e);
                }

                @Override
                public void onNext(Result<Product>  products) {
                   view.showProducts(products)
                }

                @Override
                public void onCompleted() {}
            });

测试view.showProducts()模拟服务返回结果是否正常.
我做

when(service.getProducts().thenReturn(someObservable);

现在我想测试那个view.ShowErrorView()在服务抛出错误时被调用,但我找不到办法:

显然以下不编译

when(service.getProducts().thenReturn(someException);

这会立即引发异常,但不会调用订阅者的onError方法

when(service.getProducts().thenReturn(someException);

如何调用Subscriber.onError()?

解决方法

when(service.getProducts().thenReturn(Observable.error(someException))

应该管用.请参阅从here开始的文档.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读