为什么我的编译器不允许我自己订阅带有
Observable
的 TestSubscriber
?
这是我的代码:
TestSubscriber<User> testSubscriber = new TestSubscriber<>();
Observable.just(new User()).subscribe(testSubscriber);
它说它无法解析采用此参数的方法
subscribe
。但是在所有的RxJava测试教程中,他们都在使用TestSubscriber
而没有这样的问题。我能做些什么来测试这样的Observable
?
这是因为
*Subscriber
是为 Flowable
而 Observable
使用 *Observer
类。这是因为反应流标准为Subscriber
实现的完全兼容的Publisher
接口保留了Flowable
。
此外,对于 RxJava2,所有响应式类都有一个
.test()
方法,它将直接为您提供适当的测试对象。
对于 RxJava 1 → RxJava 2 迁移,我刚刚用
TestSubscriber
替换了 TestObserver
来使 Observable#subscribe
调用编译和工作。
如果您想使用
Observable
进行测试,您可以将 Flowable
更改为 TestSubscriber
,如下所示:
TestSubscriber<User> testSubscriber = new TestSubscriber<>();
Flowable.just(new User()).subscribe(testSubscriber);