我对 javascript 相当陌生,并且正在尝试使用 jasmine 对一些错误处理代码进行单元测试。
特别是,我正在尝试编写一些测试来验证替换 window.onerror() 的自定义代码(称为 windowHandleError)是否被调用,并且正在执行我们想要的操作。
我已经尝试了一些类似的东西:
it("testing window.onerror", function() {
spyOn(globalerror, 'windowHandleError');
globalerror.install();
var someFunction = function() {
undefinedFunction();
};
expect(function() {someFunction();}).toThrow();
expect(globalerror.windowHandleError).toHaveBeenCalled();
});
但它不会触发onerror。我看过一些相关的问题,但它们似乎询问特定的浏览器,或者如何/在哪里使用 onerror 而不是如何测试它。
window.onerror 在 Firefox 中未触发
在 Selenium 中捕获 JavaScript 错误
window.onerror 不起作用
如何在 Internet Explorer 中触发 script.onerror?
根据其中一些人的说法,我认为在调试器中运行规范测试会强制触发 onerror,但不会触发骰子。有人知道更好的方法吗?