Dites que j'espionne une méthode comme celle-ci:
spyOn(util, "foo").andReturn(true);
La fonction testée appelle util.foo
plusieurs fois.
Est-il possible que l'espion revienne true
la première fois qu'il est appelé, mais revienne false
la deuxième fois? Ou y a-t-il une manière différente de procéder?
javascript
unit-testing
jasmine
Mikhail
la source
la source
.returnValues
- les deux fonctions sont évidemment différentes, mais passer plusieurs arguments à.returnValue
ne génère pas d'erreur. Je ne veux pas admettre combien de temps j'ai perdu à cause de ce seul personnage.Pour les anciennes versions de Jasmine, vous pouvez utiliser
spy.andCallFake
pour Jasmine 1.3 ouspy.and.callFake
pour Jasmine 2.0, et vous devrez garder une trace de l'état `` appelé '', soit par une simple fermeture, soit par une propriété d'objet, etc.la source