Parece sencillo crear un código auxiliar que devuelva diferentes valores en llamadas repetidas:
¿Es posible aplicar el método auxiliar dos veces dentro de una sola prueba para obtener resultados diferentes?
Pero, ¿cómo se hace esto con un método asíncrono que se resuelve en varias llamadas?
sinon(module, "myFunction")
.resolves('a')
.resolves('b')
Para ser claros, en el fragmento anterior, la segunda resolución sobrescribe la primera, por lo que siempre devuelve 'b'. Me gustaría el comportamiento donde 'myFunction' primero resuelve 'a' y luego resuelve 'b'.
Solución del problema
Aquí está la solución:
sinon(module, "myFunction")
.onFirstCall().resolves('a')
.onSecondCall().resolves('b')
No hay comentarios:
Publicar un comentario