Не реагировать на Throwable в Unit тестах
Использую:
Mockito (3.4.0)
JUnit4
LiveData (android arch components)
ViewModel (android arch components)
RxJava
Тест настроен следующим образом
@get:Rule
var rule: TestRule = InstantTaskExecutorRule()
@Before
fun setUp() {
val hook = object : RxAndroidSchedulersHook() {
override fun getMainThreadScheduler(): Scheduler {
return Schedulers.trampoline()
}
}
RxAndroidPlugins.getInstance().registerSchedulersHook(hook)
RxJavaHooks.setOnNewThreadScheduler { Schedulers.trampoline() }
RxJavaHooks.setOnIOScheduler { Schedulers.trampoline() }
RxJavaHooks.setOnComputationScheduler { Schedulers.trampoline() }
}
Необходимо протестировать следующий код(момент попадания в блок catch):
interactor.getData()
.observeOn(AndroidSchedulers.mainThread())
.doOnSubscribe { state.value = State.Loading }
.subscribe({
state.value = State.Data(items = it)
}, {
state.value = State.Error
})
Мне нужно протестировать, что если в Рх цепочке произошел Exception, то LiveData "state" приняла значение State.Error (но у меня тест сразу отваливается т.к. произошел экзепшен)
Как все таки протестировать?