Chai / Expect - 如何在开发的同时工作?似乎真的很难从 expect().to.throw 到记录错误

Chai / Expect - how to work while developing? Seems really hard to go from expect().to.throw to logging the error

我有这个代码

expect(function() {
   //some error
}).to.throw(Error);

我如何轻松从这里开始记录测试中的错误?

我真的必须输入 try/catch 和 console.log 吗?这不违背我最终需要删除它们才能通过测试的事实吗?

Chai .toThrow() 匹配器可用于以下方式:

  1. 检查抛出的错误是否属于特定实例

    expect(function() {
      throw SyntaxError('sample error message');
    }).to.throw(SyntaxError);
    
  2. 检查错误消息的文本

    expect(function() {
      throw SyntaxError('sample error message');
    }).to.throw(/sample error message/);
    

如果这不适合您的用例,您始终可以 try/catch 和 inspect/make 对捕获错误的对象进行断言:

try {
  throw SyntaxError('sample error message');
} catch(e) {
  expect(e.message).to.equal('sample error message');
}