Digamos que estoy espiando un método como este:
spyOn(util, "foo").andReturn(true);
La función bajo prueba llama util.foo
varias veces.
¿Es posible que el espía regrese true
la primera vez que se le llame, pero regrese false
la segunda vez? ¿O hay una forma diferente de hacerlo?
javascript
unit-testing
jasmine
Mikhail
fuente
fuente
.returnValues
: las dos funciones son obviamente diferentes, pero pasar múltiples argumentos a.returnValue
no arroja un error. No quiero admitir cuánto tiempo perdí debido a ese personaje.Para versiones anteriores de Jasmine, puede usar
spy.andCallFake
Jasmine 1.3 ospy.and.callFake
Jasmine 2.0, y tendrá que realizar un seguimiento del estado 'llamado', ya sea a través de un cierre simple o propiedad de objeto, etc.fuente