私はRx 1からRx 2に移行している途中で、投稿を読んでいると突然 Single が改造コールに使用できるオブザーバブルのタイプであることがわかりました。
それで、私はそれを試してみることにしました、そして、Rx 2へのレトロフィット呼び出しを移行している間、私はまた戻り値を_Single<whatever>
_に変更しました。
問題は、ネットワークサービスを模擬するいくつかのテストです。
_when(userService.logout()).thenReturn(Observable.empty())
_
呼び出しを移行する前にわかるように、userService
モックに空のオブザーバブルを返すように指示することにより、単純にストリームを完了していました。
呼び出しのSingle
"バージョン"に移行するとき、Observable.empty()
を使用できなくなりました。これは、呼び出しがObservable
を返さないが、Single
。
私は次のようなことをしました:
_when(userService.logout()).thenReturn(
Single.fromObservable(Observable.<whatever>empty()))
_
私の質問は:
Single
には単一の項目またはエラーが必要であるため、Single.empty()
は意味がありません。単にObservable
を保持するか、空を許可するMaybe
に切り替えるか、アイテムをまったく出力しないCompletable
に切り替えることができます。
回避策、たとえばテストのために
Observable.<Whatever>empty().toSingle()
これはサブスクライバーをまったく呼び出さないことに注意してください。