我对单元测试RxJava代码部分有些麻烦。我想测试下面的方法。这是一个主持人的方法。RxJava2 JUnit测试
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,匕首,MVP。
我知道这一切完成。这个问题的目标是RxJava,而不是美国的JUnit测试。重写调度程序是最好的选择。 –