我正在开发一个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) { ... }
但无济于事。
我的问题,没有人有任何建议如何处理这个?