我正在使用这样的响应包装器在我的API服务中使用Rxjava2的Flowable:
@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 :(得分:0)
AResponse
对象是什么?
您正尝试使用Flowable
AResponse<List<Article>>
getArticles()
来模拟Flowable
List<Article>
(您的服务API接口方法Flowable.fromArray(mList)
)AResponse
1}}),它不会编译,因为它不是同一个对象。
您需要创建一个mList
对象(显然是您的自定义对象)类型,它将包装给定的Flowable
,然后从中创建模拟的database
结果。< / p>