2014-12-28 10 views
15

Sto cercando di prendere in giro un oggetto di risposta, ed è simile a questa:Jasmine ha createSpy() restituiscono oggetto fittizio

var res = { 
    status: jasmine.createSpy().andReturn(this), 
    send: jasmine.createSpy().andReturn(this) 
} 

Questo restituisce l'oggetto gelsomino. Mi piacerebbe davvero restituire la variabile di conversione originale contenente le funzioni mocked. È possibile? Lo sto implementando principalmente con le funzioni di unit test contenenti res.status(). Send(), che si sta dimostrando difficile.

risposta

26

La risposta qui è in realtà piuttosto veloce. Calling andReturn() ti darà il gelsomino come 'this'. Ma se scrivi e CallFake(), quella funzione considera questo oggetto mocked. Soluzione assomiglia così:

status: jasmine.createSpy().andCallFake(function(msg) { return this }); 
+2

chiesto e ha risposto. +2 internet per te. –

+16

In Jasmine 2.4 è ora '.and.callFake (function() {})' –

7

questo funziona per me:

const res = { 
    status: jasmine.createSpy('status').and.callFake(() => res), 
    send: jasmine.createSpy('send').and.callFake(() => res), 
}; 
Problemi correlati