【发布时间】:2016-08-22 11:10:04
【问题描述】:
这里的逻辑是,如果数据库中的评分是空的,那么我想从 API 中获取它们。我有以下代码:
Observable.from(settingsRatingRepository.getRatingsFromDB())
.toList()
.switchIfEmpty(settingsRatingRepository.getSettingsRatingModulesFromAPI())
.compose(schedulerProvider.getSchedulers())
.subscribe(ratingsList -> {
view.loadRatingLevels(ratingsList, hideLocks);
}, this::handleError);
getRatingsFromDB() 调用返回List<SettingRating>,但 API 调用返回Observable<List<SettingRating>>。
但是,当我对此进行单元测试时,当我从数据库调用传递一个空列表时,它不会执行 API 调用。有人可以在这件事上帮助我吗?这是我的单元测试代码:
when(mockSettingsRatingsRepository.getRatingsFromDB()).thenReturn(Collections.emptyList());
List<SettingsRating> settingsRatings = MockContentHelper.letRepositoryReturnSettingsRatingsFromApi(mockSettingsRatingsRepository);
settingsParentalPresenter.onViewLoad(false);
verify(mockView).loadRatingLevels(settingsRatings, false);
【问题讨论】: