Digamos que eu esteja espionando um método como este:
spyOn(util, "foo").andReturn(true);
A função em teste chama util.foo
várias vezes.
É possível fazer o espião retornar true
na primeira vez que é chamado, mas retornar false
na segunda vez? Ou existe uma maneira diferente de fazer isso?
javascript
unit-testing
jasmine
Mikhail
fonte
fonte
.returnValues
- as duas funções são obviamente diferentes, mas passar vários argumentos para.returnValue
não gera um erro. Não quero admitir quanto tempo perdi com aquele personagem.Para versões mais antigas do Jasmine, você pode usar
spy.andCallFake
para Jasmine 1.3 ouspy.and.callFake
para Jasmine 2.0, e você terá que controlar o estado 'chamado', seja por meio de um fechamento simples ou propriedade de objeto, etc.fonte