コンパイラがTestSubscriberを使用してObservableをサブスクライブできないのはなぜですか?
これが私のコードです:
TestSubscriber<User> testSubscriber = new TestSubscriber<>();
Observable.just(new User()).subscribe(testSubscriber);
そして、このパラメータを取っているメソッドsubscribe
を解決できないと言っています。しかし、すべてのRxJavaテストチュートリアルでは、そのような問題なしにTestSubscriberを使用しています。そのようなObservableをテストするにはどうすればよいですか?
これは、_*Subscriber
_がFlowable
を対象としているのに対し、Observable
は_*Observer
_クラスを使用しているためです。これは、reactive-streams標準がSubscriber
が実装する完全準拠のPublisher
インターフェース用にFlowable
を予約しているためです。
さらに、RxJava2では、すべてのリアクティブクラスに.test()
メソッドがあり、適切なテストオブジェクトを直接提供します。
RxJava1→RxJava2の移行では、TestSubscriber
をTestObserver
に置き換えてObservable#subscribe
compileを呼び出して動作します。