android 无法使用TestSubscriber订阅RxJava 2可观察对象

gg58donl  于 2023-02-20  发布在  Android
关注(0)|答案(3)|浏览(163)

为什么我的编译器不允许我用TestSubscriber订阅Observable
下面是我的代码:

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

而且它说它不能解析带这个参数的subscribe方法,但是在所有的RxJava测试教程中,他们使用的TestSubscriber都没有这样的问题,我该怎么测试这样的Observable呢?

m1m5dgzv

m1m5dgzv1#

这是因为*Subscriber是为Flowable设计的,而Observable使用*Observer类,这是因为React流标准为完全兼容的Publisher接口保留了Subscriber,而Publisher接口由Flowable实现。
此外,对于RxJava2,所有React类都有一个.test()方法,它将直接为您提供适当的测试对象。

ufj5ltwl

ufj5ltwl2#

对于RxJava 1到RxJava 2的迁移,我刚刚用TestObserver替换了TestSubscriber,以使Observable#subscribe调用编译并工作。

xesrikrc

xesrikrc3#

如果要使用TestSubscriber进行测试,可以将Observable更改为Flowable,如下所示:

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

相关问题