2016-05-10 13 views
2

このコードをテストしています。retrofitサービス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()はどのようにして呼び出すことができますか?

答えて

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

が有効です。 hereから始まるドキュメントを参照してください。

関連する問題