0
我想測試一下這種方法:如何正確測試,如果用戶在onNext()(RxJava2)調用正確的數據
void updateAvailableScreens() {
safieCam.availableCameras()
.flatMap(this::getAvailableScreensForCameras)
// causing failure .observeOn(schedulers.mainThread())
.subscribe(
screens -> {
view.setAvailablePagesOnViewPager(screens);
view.setAvailablePagesOnBottomSheet(screens);
},
Timber::e
);
}
與這個測試(所以給已知的數據,我希望調用視圖預計枚舉列表):
@Test
public void widgetsShouldGetAllScreens() {
when(camera.availableCameras()).thenReturn(
Observable.just(Arrays.asList(
SafieCam.CameraType.SELFIE,
SafieCam.CameraType.REAR)));
testedVPPresenter.updateAvailableScreens();
List<ViewPagerView.Pages> pages = Arrays.asList(
ViewPagerView.Pages.SELFIE,
ViewPagerView.Pages.REAR_CAMERA,
ViewPagerView.Pages.LOGIN);
verify(view).setAvailablePagesOnViewPager(pages);
verify(view).setAvailablePagesOnBottomSheet(pages);
}
但當observeOn是註釋掉測試將失敗,並view
由於零個互動,否則會贏得成功。
需要信息: schedulers
是接口包裝器,所有調用的調度器都在TestScheduler的測試上被模擬。
問題:我在這裏做錯了什麼?如果是的話,是什