Sto utilizzando una spia Jasmine (2.2.0) per verificare se viene richiamata una determinata richiamata.Ripristina chiamata su spia Jasmine non restituisce
Codice di prova:
it('tests', function(done) {
var spy = jasmine.createSpy('mySpy');
objectUnderTest.someFunction(spy).then(function() {
expect(spy).toHaveBeenCalled();
done();
});
});
Questo funziona come previsto. Ma ora, sto aggiungendo un secondo livello:
it('tests deeper', function(done) {
var spy = jasmine.createSpy('mySpy');
objectUnderTest.someFunction(spy).then(function() {
expect(spy).toHaveBeenCalled();
spy.reset();
return objectUnderTest.someFunction(spy);
}).then(function() {
expect(spy.toHaveBeenCalled());
expect(spy.callCount).toBe(1);
done();
});
});
Questa prova non torna mai, perché a quanto pare il done
callback non viene mai chiamato. Se rimuovo la riga spy.reset()
, il test termina, ma ovviamente non riesce sull'ultima aspettativa. Tuttavia, il campo callCount
sembra essere undefined
anziché 2
.
sta lanciando? –
Prova ad aggiungere gestori di rifiuto per le tue promesse. – robertklep
aggiunto '.catch (done)' alla fine della catena, si verifica lo stesso problema. Quindi @ Daniel, se sta lanciando non riesco a rilevarlo. – Jorn