当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Node.js assert.rejects()用法及代码示例


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

用法:

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

参数:该函数接受上述和以下描述的以下参数:

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

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

断言模块的安装:



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

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

  2. 安装断言模块后,可以使用命令在命令提示符下检查断言版本。
    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

    输出:

    (node:12704) UnhandledPromiseRejectionWarning:AssertionError [ERR_ASSERTION]:Expected
    values to be strictly equal:

    1 !== 2

    at C:\Users\Lenovo\Downloads\Geeksforgeeks Internship\index.js:25:12
    at Object. (C:\Users\Lenovo\Downloads\Geeksforgeeks Internship\NEW\Assert Function
    \index.js:38:3)
    at Module._compile (internal/modules/cjs/loader.js:1138:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1158:10)
    at Module.load (internal/modules/cjs/loader.js:986:32)
    at Function.Module._load (internal/modules/cjs/loader.js:879:14)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)
    at internal/main/run_main_module.js:17:47
    (node:12704) UnhandledPromiseRejectionWarning:Unhandled promise rejection. This
    error originated either by throwing inside of an async function without a catch block,
    or by rejecting a promise which was not handled with .catch(). To terminate the node
    process on unhandled promise rejection, use the CLI flag `-unhandled-rejections=strict`
    (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode).
    (rejection id:1)

范例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




相关用法


注:本文由纯净天空筛选整理自gouravhammad大神的英文原创作品 Node.js assert.rejects() Function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。