2017-05-28 60 views
0

我使用的是響應包裝像這樣使用Rxjava2的可流動在我的API服務的HTTP響應:模擬可流動包裹着的Mockito

@GET("api/v1/articles") 
Flowable<AResponse<List<Article>>> getArticles(@Query("cat") int cat); 

我想嘲諷使用的Mockito API請求,以測試文章主持人,

List<Article> mList = new ArrayList<>(); 
mList.add(new Article()); 
mList.add(new Article()); 
doReturn(Flowable.fromArray(mList)).when(mApiService).getArticles(cat); 

測試失敗這一異常引起的:

"java.lang.ClassCastException: java.util.ArrayList cannot be cast to com...http.AResponse" 

哪能溶膠這是嗎?謝謝。

回答

0

什麼是AResponse對象?

你試圖嘲弄的AResponse<List<Article>>Flowable(你是服務API接口方法getArticles())與List<Article>Flowable.fromArray(mList)Flowable,它不會編譯,因爲它是不是同一個對象。

您需要創建的AResponse對象(這顯然是你的自定義對象),將包裹給mList,然後從它創建嘲笑Flowable結果類型。