Я пытаюсь писать тесты для функции которые возвращают некоторые данные, если проверка проходит еще бросает исключениеТестирование RxJava исключение с TestSubscriber
private String validate(Test test) {
//Validation Logic which returns null or throws Exception
}
public Observable<Test> create(Test test) {
return Observable
.just(validate(test))
.flatMap(x -> testRepository
.create(test));
}
прецедент для того же
@Test
public void Should_ThrowException_When_NoData() {
Test test = sampleTest();
TestSubscriber<Test> subscriber = new TestSubscriber<>();
testService
.create(test)
.subscribe(subscriber);
subscriber.awaitTerminalEvent();
Throwable thrown = subscriber.getOnErrorEvents().get(0);
assertThat(thrown)
.isInstanceOf(CustomException.class)
.hasFieldOrPropertyWithValue("errorId", 102);
}
Но испытаний case не работает на testService.create.
В чем проблема?
Благодаря
Он не работает, потому что вы вызываете 'validate()' до того, как его возвращаемое значение используется для создания Observable. – akarnokd
Хорошо, тогда как это можно исправить? –
'fromCallable (() -> validate (test))' – akarnokd