Vorrei testare la mia applicazione angolare con Jasmine. Così ho creato alcuni test, molti di questi funzionano bene. Ma una delle mie funzioni richiede all'utente di compilare un prompt. I test non possono riempire questo messaggio, quindi li ho derisi con spyOn(window,'prompt').and.returnValue('test')
. Funziona, ma solo una volta.Jasmine spyOn con più resi
Quando aggiungo due dei miei componenti (la funzione in cui si trova il prompt), voglio spyOn
il primo prompt con risultato 'test' e il secondo prompt con 'test2'. Ho provato a fare questo nel modo seguente:
it 'should place the component as last object in the form', ->
spyOn(window, 'prompt').and.returnValue('test')
builder.addFormObject 'default', {component: 'test'}
spyOn(window, 'prompt').and.returnValue('test2')
builder.addFormObject 'default', {component: 'test2'}
expect(builder.forms['default'][0].name).toEqual('test')
Ma questo dà il seguente errore: Error: prompt has already been spied upon
Questo è abbastanza logico, ma non so altro modo di tornare con uno spyOn.
Quindi, quello che voglio è questo: Prima del primo addFormObject voglio spiare il prompt che restituisce 'test'. E la seconda addFormObject voglio spiare con ritorno 'test2'