阿西河

所有教程

公众号
🌙
阿西河前端的公众号

我的收藏

    最近访问  (文章)

      教程列表

      抓包专区
      测试专区

      Node.js assert.doesNotThrow

      Node.js assert.doesNotThrow(fn[, error][, message]) 版本历史

      版本变更
      v5.11.0, v4.4.5The message parameter is respected now.
      v4.2.0The error parameter can now be an arrow function.
      v0.1.21新增于: v0.1.21
      • fn < Function>
      • error < RegExp> | < Function>
      • message < string>

      断言 fn 函数不会抛出错误。

      使用 assert.doesNotThrow() 实际上没有用处,因为捕获错误然后重新抛出它没有任何好处。 应该考虑在不应抛出错误的特定代码路径旁边添加注释,并尽可能保留错误消息。

      当调用 assert.doesNotThrow() 时,它将立即调用 fn 函数。

      如果抛出错误并且它与 error 参数指定的类型相同,则抛出 AssertionError .

      如果错误的类型不同,或者 error 参数未定义,则错误将传播回调用方。

      如果指定,则 error 可以是 ClassRegExp 或验证函数。 有关更多详细信息,请参见assert.throws()

      例如,以下示例将抛出 TypeError ,因为断言中没有匹配的错误类型:

      assert.doesNotThrow(
        () => {
          throw new TypeError('错误值');
        },
        SyntaxError
      );
      

      以下示例将导致 AssertionError,并显示消息 ‘Got unwanted exception…':

      assert.doesNotThrow(
        () => {
          throw new TypeError('错误值');
        },
        TypeError
      );
      

      如果抛出 AssertionError 并为 message 参数提供了值,则 message 的值将附加到 AssertionError 消息:

      assert.doesNotThrow(
        () => {
          throw new TypeError('错误值');
        },
        /错误值/,
        '出错啦'
      );
      // AssertionError: Got unwanted exception: 出错啦
      

      更多选项请参考:Node.js assert 断言测试,或者通过 点击对应菜单 进行查看;


      目录
      本文目录
      目录