Chai / Expect - 如何在开发过程中工作?似乎很难从expect()。to.throw到记录错误

时间:2015-06-06 23:04:10

标签: javascript unit-testing mocha chai

我有这段代码

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

我如何轻松从此处开始在测试中记录错误?

我真的必须输入try / catch和console.log吗?这是不是违背了这样一个事实:我最终需要将它们移除才能通过测试?

1 个答案:

答案 0 :(得分:0)

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/);
    
  3. 如果这不适合您的用例,您可以始终try/catch并检查/对捕获的错误的对象进行断言:

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