2
我正在測試此代碼。如何模擬改造服務observable調用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);
這立即引發異常,但不調用用戶的onError
方法
when(service.getProducts().thenReturn(someException);
我怎樣才能得到Subscriber.onError()
叫?