我在对 RxJava 代码部分进行单元测试时遇到了一些麻烦。我想测试下面的方法。这是一种演示者方法。
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。