Reputation: 1124
Why is my compiler not allowing myself to subscribe on an Observable
with a TestSubscriber
?
Here's my code:
TestSubscriber<User> testSubscriber = new TestSubscriber<>();
Observable.just(new User()).subscribe(testSubscriber);
And it's saying that it can't resolve method subscribe
which is taking this parameter. But in all RxJava testing tutorials, they are using TestSubscriber
without such problems. What can I do to test such Observable
?
Upvotes: 24
Views: 4406
Reputation: 154
You can change Observable
to Flowable
if you want to test with TestSubscriber
as follow:
TestSubscriber<User> testSubscriber = new TestSubscriber<>();
Flowable.just(new User()).subscribe(testSubscriber);
Upvotes: 0
Reputation: 2360
For RxJava 1 → RxJava 2 migration, I've just replaced TestSubscriber
with TestObserver
to make Observable#subscribe
call compile and work.
Upvotes: 5
Reputation: 25603
It is because *Subscriber
are meant for Flowable
while Observable
uses the *Observer
classes. This is because the reactive-streams standard reserves Subscriber
for the fully compliant Publisher
interface which Flowable
implements.
Additionally with RxJava2 all reactive classes have a .test()
method which will directly give you the appropriate testing object.
Upvotes: 27