📜  Node.js assert.throws()函数

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

Node.js assert.throws()函数

assert模块提供了一组用于验证不变量的断言函数。 assert.throws()用于当代码根据特定情况抛出异常时,捕获错误对象以进行测试和比较。

句法:

assert.throws(fn[, error][, message])

参数:

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

  • fn:这个参数是一个不会抛出错误的函数。
  • 错误:此参数是正则表达式或函数。这是指定的错误。它是一个可选参数。
  • message:此参数保存字符串或错误类型的错误消息。它是一个可选参数。

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

安装断言模块:

npm install assert

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

2. 安装assert模块后,您可以在命令提示符下使用命令查看您的assert版本。

npm version assert

3. 之后,您可以创建一个文件夹并添加一个文件,例如 index.js,如下所示。

示例 1:

index.js
// Requiring the module 
const assert = require('assert'); 
      
var invalidNum = function(){
    throw console.log("Invalid Number")
};
  
var someFunc = function(a){
    if(a>10){
        invalidNum();
    }
    else{
        console.log("Valid number");
    }
};
  
assert.throws(function(){
    someFunc(5);
});


index.js
// Requiring the module 
const assert = require('assert'); 
      
var invalidNum = function(){
    throw console.log("Invalid Number")
};
  
var someFunc = function(a){
    if(a>10){
        invalidNum();
    }
    else{
        console.log("Valid number");
    }
};
  
assert.throws(function(){
    someFunc(12);
});


运行程序的步骤:

使用以下命令运行 index.js 文件:

node index.js

输出:

Valid number
assert.js:105
 throw new AssertionError(obj);
 ^
AssertionError [ERR_ASSERTION]: Missing expected exception.
   at Object. (F:\Blogs\GFG\Assert.throw\index.js:18:8)
   at Module._compile (internal/modules/cjs/loader.js:1063:30)
   at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
   at Module.load (internal/modules/cjs/loader.js:928:32)
   at Function.Module._load (internal/modules/cjs/loader.js:769:14)
   at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12)
   at internal/main/run_main_module.js:17:47 {
 generatedMessage: false,
 code: 'ERR_ASSERTION',
 actual: undefined,
 expected: undefined,
 operator: 'throws'
}

示例 2:

index.js

// Requiring the module 
const assert = require('assert'); 
      
var invalidNum = function(){
    throw console.log("Invalid Number")
};
  
var someFunc = function(a){
    if(a>10){
        invalidNum();
    }
    else{
        console.log("Valid number");
    }
};
  
assert.throws(function(){
    someFunc(12);
});

运行程序的步骤:

使用以下命令运行 index.js 文件:

node index.js

输出:

Invalid Number

参考: https://nodejs.org/api/assert.html#assert_assert_throws_fn_error_message