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.