Не удается подписаться на RxJava 2, наблюдаемый с помощью TestSubscriber
Почему мой компилятор не позволяет мне подписываться на Observable с помощью TestSubscriber?
Здесь мой код:
TestSubscriber<User> testSubscriber = new TestSubscriber<>();
Observable.just(new User()).subscribe(testSubscriber);
И он говорит, что не может разрешить метод subscribe
, который принимает этот параметр. Но во всех обучающих программах RxJava они используют TestSubscriber без таких проблем. Что я могу сделать, чтобы проверить такое наблюдение?
Ответы
Ответ 1
Это потому, что *Subscriber
предназначены для Flowable
, тогда как Observable
использует классы *Observer
. Это связано с тем, что стандартные уровни реактивных потоков Subscriber
для полностью совместимого интерфейса Publisher
, который реализуется Flowable
.
Дополнительно с RxJava2 все реактивные классы имеют метод .test()
, который непосредственно даст вам соответствующий объект тестирования.
Ответ 2
Для перехода с RxJava 1 на RxJava 2 я просто заменил TestSubscriber
на TestObserver
чтобы сделать Observable#subscribe
скомпилировать и работать вызовы.