Я сейчас перехожу из Rx 1 в Rx 2 и внезапно при чтении сообщений я обнаружил, что Single должен быть типом наблюдаемого для использования для переоборудования вызовов.
Итак, я решил сделать снимок и, мигрируя наши призывы к переориентации в Rx 2, также изменил возвращаемое значение на Single<whatever>
.
Теперь проблема в том, что некоторые из наших тестов обманывают сетевые службы чем-то похожим на:
when(userService.logout()).thenReturn(Observable.empty())
Как вы можете видеть перед мигрированием вызовов, которые мы использовали для простого завершения потока, сообщая userService
mock, чтобы вернуть пустой наблюдаемый.
При переходе на Single
"версию" вызовов мы больше не можем использовать Observable.empty()
, потому что вызов не возвращает Observable
, а возвращает Single
.
В итоге я сделал что-то вроде:
when(userService.logout()).thenReturn(
Single.fromObservable(Observable.<whatever>empty()))
Мои вопросы:
- Есть ли лучший способ сделать это?
- Мне не хватает ничего важного, что я должен знать - что-то вроде этого на самом деле не ведет себя так, как я ожидаю.