2016-05-10 3 views
2

Я тестирую этот код.Как насмехаться над сервисом переоснащения наблюдаемого вызова 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() {} 
      }); 

Testing что view.showProducts() на издевались возвращает сервис результаты работает отлично. я

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

Теперь я хочу, чтобы проверить, что view.ShowErrorView() вызывается, когда служба выдает ошибку, но я не могу найти способ сделать это:

Очевидно, что следующий не компилирует

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

И это сразу бросается исключение, но не вызывает onError метод абонента

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

Как я могу позвонить Subscriber.onError()?

ответ

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

должно работать. См. Документацию, начиная с here.

Смежные вопросы