单元测试 – 如何模拟调用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开始的文档. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |