java - whatwg - ¿Hay algo como Single.empty()
www w3 org español (2)
Una solución por ejemplo para pruebas sería
Observable.<Whatever>empty().toSingle()
tenga en cuenta que esto no llama a los suscriptores en absoluto.
Estoy en el proceso de migrar de Rx 1 a Rx 2 y de repente, mientras leía las publicaciones, descubrí que Single debería ser el tipo de observable que se debe usar para las llamadas de modificación.
Así que decidí darle una oportunidad y mientras migraba nuestras llamadas de actualización a Rx 2, también cambié el valor de retorno a Single<whatever>
.
Ahora el problema es que algunas de nuestras pruebas se burlan de los servicios de red algo similar a:
when(userService.logout()).thenReturn(Observable.empty())
Como puede ver, antes de migrar las llamadas que usamos para simplemente completar la transmisión, le userService
al userService
simulacro que devuelva un observable vacío.
Al migrar a la "versión" de Single
de las llamadas, ya no podemos usar Observable.empty()
porque la llamada no devuelve un Observable
, sino que devuelve un Single
.
Terminé haciendo algo como:
when(userService.logout()).thenReturn(
Single.fromObservable(Observable.<whatever>empty()))
Mis preguntas son:
- ¿Hay una mejor manera de hacer esto?
- ¿Me estoy perdiendo algo importante que debería saber? Algo así no se comporta como yo esperaba.
Single.empty()
no tiene sentido porque Single
debe tener un solo elemento o un error. Podría haber mantenido Observable
o cambiado a Maybe
lo que permite el uso de un elemento vacío o Completable
que no emite ningún elemento.