Upload
rambler-android
View
608
Download
0
Embed Size (px)
Citation preview
Виртуальное время
12
Data1 Data2 Data3
20 сек 8 сек
triggerActions()
advanceTimeTo(28, TimeUnit.SECONDS)
advanceTimeBy(20, TimeUnit.SECONDS)
advanceTimeBy(8, TimeUnit.SECONDS)
Rx Plugins: Пример
логирования
19
Creating class rx.internal.operators.OnSubscribeRange
Creating class rx.internal.operators.OnSubscribeMap
Creating class rx.internal.operators.OnSubscribeFilter
Выводы
• Код с rxJava - тестируемый
• Нужно помнить о правильных Schedulers в тестовом окружении
• TestSubscriber и TestScheduler позволяют с легкостью
протестировать любой Observable
• TestSubject отлично подходит для тестирования именованных
Subscribers
21
Ответы на часто задаваемые
вопросыflatMap, concatMap, switchMap - в чем разница?
• flatMap - получим все onNext от предыдущего Observable, но порядок их не
гарантируется
• concatMap - получим все onNext только после завершения предыдущего Observable
• switchMap - отписывается от всех предыдущих Observable, какие-то onNext можем не
получить
Scheduler.io() vs Scheduler.computation()?
• io - количество потоков в пуле не ограничено, добавляется новый поток по
необходимости, хорошо для использования нересурсоемких задач т.к. переключение
между потоками затратная операция
• computation - число потоков равно числу ядер процессора, подходит для интенсивных
задач
22