在js中检查(读取)控制台的消息
checking (reading) messages to console in js
我正在使用Quit创建单元测试。我想测试一下,对于一个非致命错误,会向控制台发送一条警告消息。(是的,我知道我们不应该在生产代码中写入控制台。放手吧。)
所以,我有一个弹出实用程序,它接受一个配置对象:
popup.js:
showPopup = function(cfg){
if !(cfg.message){
utils.log('A message is required!');
}
};
(utils.log函数将处理浏览器是否真的支持控制台)
然后我的测试文件就完成了它的任务。
popup.tests.js:
showPopup({stuff: 'stuff', message: 'I am a popup!'});
QUnit.test('A warning message is logged to console', function (assert) {
// want to know a message was sent
}
我如何确认消息已发送?
我要做的是在单元测试中覆盖console.log:
window.console = (function(old_logger) {
var previous_message;
var log = function(msg) {
previous_message = msg;
old_logger.log(msg);
}
var previous = function() {
return previous_message;
}
return { log: log, previous: previous }
})(window.console);
然后你可以做:
showPopup({stuff: 'stuff'});
assert.equal('A message is required!', console.previous());
显然,对我们来说"正确"的答案是使用sinon存根。
相关文章:
- 有没有一种方法可以在控制台关闭的情况下让console.log()在IE中记录消息
- 如何用消息正确抽象控制台.log颜色变量
- page.evaluate() 未打印控制台消息
- 如何发送控制台消息和错误以提醒
- 使用javascript在HTML的输出窗口中打印控制台消息
- 正在获取控制台消息的堆栈跟踪
- Node Defender控制台没有't显示console.error()消息
- socket.io 不记录控制台消息
- 为什么此 IF 语句不返回控制台消息
- 量角器 - 如何在输出文本文件中生成执行报告或显示控制台.log消息
- 如何在生产服务器上测试、调试和查看 Node js 应用的控制台日志消息
- 获取控制台包装器以在正确的行上记录消息
- 无法同时控制台.log(req.flash(“error”))和呈现消息
- 在设计Javascript API时,我应该引发TypeError还是忽略控制台消息
- Node.js Visual Studio工具如何获取错误/控制台消息以输出VS
- 如何抑制 LivePass 控制台消息?(维密欧播放器)
- 在指定的函数中不打印Javascript控制台消息
- 查看PhantomJS中的所有控制台消息
- 拦截web浏览器控制台消息
- 谷歌chrome -控制台消息JavaScript与绿色复选标记