斷言模塊提供了一組用於驗證不變量的斷言函數。 assert.rejects()函數將等待asyncFn承諾,或者如果asyncFn是一個函數,則它將立即調用該函數並等待返回的承諾完成,然後將檢查該承諾是否被拒絕。
用法:
assert.rejects(asyncFn[, error][, message])
參數:該函數接受上述和以下描述的以下參數:
- asyncFn:此參數是異步函數,可同步引發錯誤。
- error:此參數的類型可以是Class或正則表達式,驗證函數或將測試每個屬性的對象。它是一個可選參數。
- message:如果asyncFn無法拒絕,則此參數將是AssertionError提供的消息。它是一個可選參數。
返回值:此函數返回對象類型的斷言錯誤。
斷言模塊的安裝:
- 您可以訪問指向安裝斷言模塊的鏈接。您可以使用此命令安裝此軟件包。
npm install assert
注意:安裝是可選步驟,因為它是內置的Node.js模塊。
- 安裝斷言模塊後,可以使用命令在命令提示符下檢查斷言版本。
npm version assert
- 之後,您可以創建一個文件夾並添加一個文件,例如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")
});
})();
運行程序的步驟:
- 項目結構將如下所示:
- 使用以下命令運行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")
});
})();
運行程序的步驟:
- 項目結構將如下所示:
- 使用以下命令運行index.js文件:
node index.js
輸出:
Reject Demo Works Successfully
相關用法
- Node.js GM drawPolygon()用法及代碼示例
- Node.js GM drawEllipse()用法及代碼示例
- Node.js GM drawBezier()用法及代碼示例
- Node.js GM drawPolyline()用法及代碼示例
- Node.js GM scale()用法及代碼示例
- Node.js GM sepia()用法及代碼示例
- Node.js GM drawRectangle()用法及代碼示例
- Node.js GM whitePoint()用法及代碼示例
- Node.js GM whiteThreshold()用法及代碼示例
- Node.js GM equalize()用法及代碼示例
- Node.js GM operator()用法及代碼示例
- Node.js GM modulate()用法及代碼示例
- Node.js GM lower()用法及代碼示例
- Node.js GM drawLine()用法及代碼示例
- Node.js GM write()用法及代碼示例
- Node.js GM drawArc()用法及代碼示例
- Node.js GM minify()用法及代碼示例
- Node.js GM magnify()用法及代碼示例
- Node.js GM threshold()用法及代碼示例
注:本文由純淨天空篩選整理自gouravhammad大神的英文原創作品 Node.js assert.rejects() Function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。