我正在使用Jasmine(2.2.0)間諜來查看是否調用某個回調。Jasmine間諜的重置呼叫不返回
測試代碼:
it('tests', function(done) {
var spy = jasmine.createSpy('mySpy');
objectUnderTest.someFunction(spy).then(function() {
expect(spy).toHaveBeenCalled();
done();
});
});
可正常工作。但現在,我添加第二個層次:
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();
});
});
這個測試不會返回,因爲顯然done
回調永遠不會被調用。如果我刪除spy.reset()
這一行,測試就完成了,但顯然在最後的期望中失敗了。但是,callCount
字段似乎是undefined
,而不是2
。
它扔? –
嘗試爲您的承諾添加拒絕處理程序。 – robertklep
將'.catch(done)'添加到鏈的末尾,同樣的問題發生。所以@丹尼爾,如果它正在投擲,我無法檢測到它。 – Jorn