用Jasmine测试javascript警报

我正在为一些传统的JavaScript编写一些茉莉花测试,在代码中的某些点产生警报或确认。

在警告弹出的那一刻,它暂停在浏览器中的执行,要求我按OK。

我确定我错过了一些东西,但是有没有一种伪造警戒的方法?

更好的是,可以找出警报信息是什么?

谢谢你的帮助。

您只需创建一个间谍,令人惊讶的是用createSpy()来模拟包含警报的函数。所以你可以这样做:

beforeEach(function() {
    functionWithAlert = jasmine.createSpy("functionWithAlert");    
    functionWithAlert("called as usual");
});

你也可以这样做来返回一些东西

oldFunctionWithAlert = jasmine.createSpy("oldFunctionWithAlert() spy").andCallFake(function() {
    console.log("Doing some testing");
    return "Test";
});

在附注中,我建议您尽可能地更换警报,而不是更具破坏性的替代方案。那里有很多的选择,像JQuery UI dialog

翻译自:https://stackoverflow.com/questions/19519328/testing-javascript-alerts-with-jasmine

转载注明原文:用Jasmine测试javascript警报