3
내가 단위 테스트를 작성하고 다음과 같이 테스트 구성 요소의 코드는 (개조에서) 피 감시를 조롱RxAndroid - java.lang.IllegalStateException : 다른 전략은 이미
을 필요로하고 등록 :
getApiRequestObservable()
.observeOn(AndroidSchedulers.mainThread())
.subscribeOn(Schedulers.io())
.subscribe(...)
단위 테스트에서
내가해야합니다 (JVM에 대한 때문에 AndroidSchedulers
을 사용할 수 없습니다) 모든 동기 같은 내 시험을 볼 것이다 :
@Test
public void testSomething() {
doReturn(mockedResponse).when(presenter).getApiRequestObservable();
presenter.callApi();
verify(object,times(1)).someMethod();
}
가하려면 이것은, 내가 설정() 메소드에 훅을 등록해야합니다
@Before
public void setUp() throws Exception {
// AndroidSchedulers.mainThread() is not available here so we fake it with this hook
RxAndroidPlugins.getInstance().registerSchedulersHook(new RxAndroidSchedulersHook() {
@Override
public Scheduler getMainThreadScheduler() {
return Schedulers.immediate();
}
});
// We want synchronous operations
RxJavaPlugins.getInstance().registerSchedulersHook(new RxJavaSchedulersHook(){
@Override
public Scheduler getIOScheduler() {
return Schedulers.immediate();
}
});
}
하지만이 분명히 두 개의 후크를 등록 할 수 있지 않다으로이 위의 예외가 발생합니다. 그 주위에 어떤 방법이 있습니까?