无法使用 TestSubscriber 订阅 RxJava 2 Observable

问题描述 投票:0回答:3

为什么我的编译器不允许我自己订阅带有

Observable
TestSubscriber

这是我的代码:

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

它说它无法解析采用此参数的方法

subscribe
。但是在所有的RxJava测试教程中,他们都在使用
TestSubscriber
而没有这样的问题。我能做些什么来测试这样的
Observable

android rx-java2
3个回答
24
投票

这是因为

*Subscriber
是为
Flowable
Observable
使用
*Observer
类。这是因为反应流标准为
Subscriber
实现的完全兼容的
Publisher
接口保留了
Flowable

此外,对于 RxJava2,所有响应式类都有一个

.test()
方法,它将直接为您提供适当的测试对象。


3
投票

对于 RxJava 1 → RxJava 2 迁移,我刚刚用

TestSubscriber
替换了
TestObserver
来使
Observable#subscribe
调用编译和工作。


0
投票

如果您想使用

Observable
进行测试,您可以将
Flowable
更改为
TestSubscriber
,如下所示:

TestSubscriber<User> testSubscriber = new TestSubscriber<>();
Flowable.just(new User()).subscribe(testSubscriber);
© www.soinside.com 2019 - 2024. All rights reserved.