我正在開發一個JavaScript應用程序,它偵聽window.onerror()並向端點報告我和我的團隊正在構建。我正在使用grunt-contrib-jasmine進行單元測試,因爲我的測試用例期望錯誤被拋出,所以我遇到了問題。在Jasmine測試中處理javascript錯誤
當運行測試用例幻象,這個雜波我的輸出不必要的:http://cl.ly/image/1n3k3z2g2V2l
在引用錯誤的情況下,我的測試是這樣的:
it("should report reference errors", function() {
spyOn(window.fred, 'sendRequest').andCallFake(function(details) {
expect(details.type).toEqual('js-error');
expect(details.message).toBeNonEmptyString();
});
runs(function() {
var script = document.createElement('script');
script.type = 'text/javascript';
script.innerHTML = 'reference_error;';
document.body.appendChild(script);
});
waits(2000);
runs(function() {
expect(window.fred.sendRequest).toHaveBeenCalled();
});
});
我希望能夠到處理在代碼中某處引發的ReferenceError。盡我所見,這發生在document.body.appendChild(script);
間接。茉莉花的expect(fn).toThrow(e)
看起來像它會做的工作,如果我在這裏使用它,但測試仍然失敗。我也試過圍繞它與try { ... } catch (err) { ... }
但無濟於事。
我的問題,沒有人有任何建議如何處理這個?