Używam szpieg Jasmine (2.2.0), aby sprawdzić, czy wywołanie zwrotne jest wywoływane.Resetuj połączenie na szpiegu Jasmine nie wraca
kod Test:
it('tests', function(done) {
var spy = jasmine.createSpy('mySpy');
objectUnderTest.someFunction(spy).then(function() {
expect(spy).toHaveBeenCalled();
done();
});
});
To działa zgodnie z oczekiwaniami. Ale teraz, jestem dodanie drugiego poziomu:
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();
});
});
Ten test nie wróci, bo widocznie done
zwrotna nigdy nie jest wywoływana. Jeśli usuniemy linię spy.reset()
, test zostanie zakończony, ale oczywiście zakończy się niepowodzeniem przy ostatnim oczekiwaniu. Jednak pole callCount
wydaje się być undefined
, a nie 2
.
czy to rzuca? –
Spróbuj dodać procedury obsługi odrzucania dla swoich obietnic. – robertklep
dodał '.catch (done)' na końcu łańcucha, pojawia się ten sam problem. Więc @Daniel, jeśli rzuca, nie mogę go wykryć. – Jorn