如何模拟可观察到的改装服务调用onError



我正在测试这段代码。

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); 

这会立即抛出异常,但不会调用Subscriber的onError方法

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

如何呼叫Subscriber.onError()

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

应该起作用。请参阅此处开始的文档。

相关内容

  • 没有找到相关文章

最新更新