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