我在进行RxJava代码单元测试时遇到了一些麻烦。我想测试下面这个方法,它是一个Presenter方法。
public void onSearchQueryChanged(String searchQuery) {
backendService.getShopResultsCount(searchQuery)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(result -> {
if (isViewAttached()) {
getView().hideShopSearchInProgress();
getView().displayShopSearchResultCount(result.getSearchResponse().getNumberOfHits());
}
}, error -> {
if (isViewAttached()) {
getView().hideShopSearchInProgress();
}
});
}
在最理想的情况下,我希望能够模拟
backendService
并针对特定的搜索查询以及附加/分离的视图来测试这个用例。我已经进行了一些研究,并且我知道
toBlocking()
和test()
方法。它们都假设我有可用的Observable
。我想我必须以某种方式拆分该方法。你的处理方法是什么?我的技术栈:RxJava2、dagger、MVP。