我正在测试这段代码。
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 - 如何模拟改造服务可观察调用 onError?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37141669/