📜  Node.js assert.rejects()函数

📅  最后修改于: 2022-05-13 01:56:54.528000             🧑  作者: Mango

Node.js assert.rejects()函数

assert 模块提供了一组用于验证不变量的断言函数。 assert.rejects()函数等待 asyncFn 承诺,或者如果 asyncFn 是一个函数,那么它会立即调用该函数并等待返回的承诺完成,然后它将检查承诺是否被拒绝。

句法:

assert.rejects(asyncFn[, error][, message])

参数:此函数接受上面提到的以下参数,如下所述:

  • asyncFn:此参数是异步函数,同步抛出错误。
  • 错误:此参数的类型可以是 Class 或正则表达式或验证函数或将测试每个属性的对象。它是一个可选参数。
  • message:如果 asyncFn 拒绝失败,此参数将是 AssertionError 提供的消息。它是一个可选参数。

返回值:此函数返回对象类型的断言错误。

安装断言模块:

  1. 您可以访问安装断言模块的链接。您可以使用此命令安装此软件包。
    npm install assert

    注意:安装是一个可选步骤,因为它是内置的 Node.js 模块。

  2. 安装 assert 模块后,您可以使用命令在命令提示符下检查您的断言版本。
    npm version assert
  3. 之后,您可以创建一个文件夹并添加一个文件,例如 index.js,如下所示。

示例 1:文件名:index.js

// Requiring the module
 const assert = require('assert').strict;
  
// Function call
(async () => {
    assert.strictEqual(1,2)
    await assert.rejects(
      async () => {
        throw new TypeError('Wrong value');
      },
      (err) => {
        assert.strictEqual(err.name, 'TypeError');
        assert.strictEqual(err.message, 'Wrong value');
        return true;
      }
    ).then(() => {
        console.log("Reject Demo")
    });
})();

运行程序的步骤:

  1. 项目结构将如下所示:
  2. 使用以下命令运行index.js文件:
    node index.js

    输出:

示例 2:文件名:index.js

// Requiring the module
 const assert = require('assert').strict;
  
// Function call
(async () => {
    assert.strictEqual(1,1)
    await assert.rejects(
      async () => {
        throw new TypeError('Wrong value');
      },
      (err) => {
        assert.strictEqual(err.name, 'TypeError');
        assert.strictEqual(err.message, 'Wrong value');
        return true;
      }
    ).then(() => {
        console.log("Reject Demo Works Successfully")
    });
})();

运行程序的步骤:

  1. 项目结构将如下所示:
  2. 使用以下命令运行index.js文件:
    node index.js

    输出:

    Reject Demo Works Successfully
    

参考: https://nodejs.org/dist/latest-v12.x/docs/api/assert.html#assert_assert_rejects_asyncfn_error_message