在测试使用 qunit 显示警报的方法时避免/捕获/验证 Javascript 警报
我刚刚开始使用 Qunit,想知道是否有办法捕获/验证/省略警报,例如:
function to_test() {
alert("I'm displaying an alert");
return 42;
}
然后有类似的内容:
test("to_test", function() {
//in this case I'd like to test the alert.
alerts("I'm displaying an alert", to_test(), "to_test() should display an alert");
equals(42, to_test(), "to_test() should return 42" ); // in this case I'd like to omit the alert
});
我也愿意接受使用另一个单元测试工具的建议。
提前致谢!
I'm just starting using Qunit and would like to know whether is there a way to capture/verify/omit alerts, For example:
function to_test() {
alert("I'm displaying an alert");
return 42;
}
and then have something like:
test("to_test", function() {
//in this case I'd like to test the alert.
alerts("I'm displaying an alert", to_test(), "to_test() should display an alert");
equals(42, to_test(), "to_test() should return 42" ); // in this case I'd like to omit the alert
});
I'm open to the suggestion of using another unit testing tool as well.
Thanks in advance!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
好吧,看起来 Sinon.JS 就是您要找的。我以前从未使用过它,但我确实回答过你的问题。
您可以将全局函数alert(实际上是window.alert)替换为一个临时函数,该函数将记录本来要显示的消息。
在 javascript
(window.alert = function(msg) { savingMsg = msg; })
中很容易做到。所以你可以在测试中做到这一点。复杂性仅来自于运行测试后的清理工作。这就是你需要 Sinon.JS 的地方,它可以 与 QUnit 集成。您将需要此集成脚本。
Alright, looks like Sinon.JS is what you are looking for. I've never used it before, but I did to answer your question.
You can replace the global function alert (which is actually window.alert) with a temporary function that will record the message that would have been displayed.
It's easy to do in javascript
(window.alert = function(msg) { savedMsg = msg; })
. So you could do that within your test.The complexity comes only from cleaning up after you've run your test. That's where you need Sinon.JS which can integrate with QUnit. You'll need this integration script.