我對單元測試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測試。重寫調度程序是最好的選擇。 –