javascript - Chai.js 中的友好/自定义错误

标签 javascript node.js bdd chai

我正在使用chai.js断言库,用于查找半技术专业人员创建的 list 中可能存在的错误。换句话说,配置正在写入,但人为错误的可能性非常

目前,失败的断言如下:

var expect = require('chai').expect;

expect('String', 'Should be a Number').to.be.a('number');

导致抛出错误并显示完整堆栈。我可以通过指示不要抛出错误来减少膨胀,同时向控制台输出更小、更上下文相关的消息吗?

就堆栈跟踪而言,我已经尝试过,但没有成功:

chai.config.includeStack = false;

免责声明:这是我第一次尝试使用 chai.js图书馆。

最佳答案

expect 失败时会抛出错误,因此您可以将每个调用包装在 try/catch 中并只使用您想要的部分:

var expect = require("chai").expect;

function friendlyAssert (test) {
  try { test() }
  catch (e) { console.log(e.message); }
}

// logs a message
friendlyAssert(function () {
  expect("string", "Should be a number").to.be.a("number");
});

// completes silently
friendlyAssert(function () {
  expect(8, "Should be a number").to.be.a("number");
})

// output:
// Should be a number: expected 'string' to be a number

关于javascript - Chai.js 中的友好/自定义错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34664738/

相关文章:

javascript - 谷歌浏览器 Javascript 调试器

javascript - 使用带有缩放和滚动功能的网页加载 IFrame

javascript - 从 phantomjs 运行 mocha

java - 行为验证的值(value)

javascript - 图片加载时滚动缓慢

JavaScript getElementById()

javascript - 如何在前端应用程序和后端服务器之间共享cookie?

windows - NodeJs - 在 Windows 上访问 Git 索引

ruby-on-rails - 如何使用Cucumber和Webrat检查表单是否预先填充了值?

testing - [小 cucumber /Specflow] : How to write a scenario outline with complex types