2017-04-06 33 views
11

Dlaczego mój kompilator nie pozwala sobie na zasubskrybowanie w Obserwatorium za pomocą TestSubscribera?Nie można zasubskrybować na RxJava 2 Obserwować za pomocą TestSubscriber

Oto mój kod:

TestSubscriber<User> testSubscriber = new TestSubscriber<>(); 
Observable.just(new User()).subscribe(testSubscriber); 

A ona mówi, że nie można rozwiązać metodą subscribe który bierze ten parametr. Ale we wszystkich tutorialach testowych RxJava używają TestSubscriber bez takich problemów. Co mogę zrobić, aby przetestować takie obserwowalne?

+2

https://github.com/ReactiveX/RxJava/wiki/What's-different-in-2.0#testing – akarnokd

Odpowiedz

13

Jest tak, ponieważ *Subscriber są przeznaczone dla Flowable, podczas gdy Observable używa klas *Observer. Wynika to z faktu, że standard strumieni reaktywnych rezerwuje Subscriber dla w pełni zgodnego interfejsu Publisher, który jest implementowany.

Dodatkowo z RxJava2 wszystkie klasy reaktywne mają metodę .test(), która bezpośrednio da ci odpowiedni obiekt testowy.