4
我想測試一個方法的錯誤處理,該方法使用setTimeout進行工作。錯誤將發生在預定部分,即:Jasmine:測試一個setTimeout函數會拋出一個錯誤
function sutWithSetTimeout() {
setTimeout(function() { throw new Error("pang"); }, 1);
}
如何測試是否引發錯誤並且它具有正確的消息?
我想測試一個方法的錯誤處理,該方法使用setTimeout進行工作。錯誤將發生在預定部分,即:Jasmine:測試一個setTimeout函數會拋出一個錯誤
function sutWithSetTimeout() {
setTimeout(function() { throw new Error("pang"); }, 1);
}
如何測試是否引發錯誤並且它具有正確的消息?
您需要趕上setTimeout
中的功能,並使用expect(function(){fn();}).toThrow(e);
來調用它們。所以你可以窺探setTimeout
得到這個功能:
spyOn(window, 'setTimeout');
sutWithSetTimeout();
var fn = window.setTimeout.mostRecentCall.args[0];
expect(fn).toThrow('pang');