【发布时间】:2016-09-05 14:48:40
【问题描述】:
我正在测试这段代码。
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() 被调用?
【问题讨论】:
标签: unit-testing mockito rx-java retrofit2 rx-android