2017-05-28 56 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结果类型。