【问题标题】:Javascript chai why throw not caught?Javascript chai 为什么抛出没有被抓到?
【发布时间】:2020-01-10 14:44:42
【问题描述】:

我正在 Windows 10 上使用 mochachai 测试 Nodejs 服务器。 如果密钥不存在,则访问数据库的一个函数会抛出。为什么要像这样把它放在expect 下:

expect(db.getReferenceData("not-existent")).to.throw();

失败?相反,将它放在另一个函数中是可行的:

expect(function() {
    db.getReferenceData("not-existent");
}).to.throw();

文档中的示例似乎暗示第一次调用是正确的,至少对我而言。

感谢您的帮助! 马里奥

【问题讨论】:

    标签: javascript testing mocha.js chai


    【解决方案1】:

    在您的第一个示例中,在调用 expect() 之前引发了异常。你需要推迟db.getReferenceData的执行,让expect捕获异常。

    【讨论】:

      猜你喜欢
      • 2016-09-04
      • 1970-01-01
      • 2011-03-15
      • 2020-03-27
      • 2016-12-19
      • 2014-03-02
      • 2015-02-25
      • 2011-12-12
      • 2014-08-16
      相关资源
      最近更新 更多