โมดูลยืนยันมีฟังก์ชันต่างๆ มากมายที่ใช้สำหรับการยืนยันฟังก์ชัน ฟังก์ชัน assert.rejects จะรอฟังก์ชัน async ที่ส่งผ่านสัญญา 'asyncfn' หาก asyncfn เป็นฟังก์ชัน มันจะเรียกใช้ฟังก์ชันนี้ทันทีและจะรอจนกว่าสัญญาที่ส่งคืนจะเสร็จสมบูรณ์ จากนั้นจะตรวจสอบคำมั่นสัญญาว่าจะถูกปฏิเสธ
ไวยากรณ์
assert.rejects(asyncfn, [error], [message])
พารามิเตอร์
พารามิเตอร์ข้างต้นอธิบายไว้ด้านล่าง −
-
คุณค่า – นี่คือฟังก์ชัน async ซึ่งจะส่งข้อผิดพลาดพร้อมกัน
-
ข้อผิดพลาด – พารามิเตอร์นี้สามารถเก็บฟังก์ชัน Class, Regular Expression, Validation หรืออ็อบเจ็กต์ที่จะทดสอบคุณสมบัติแต่ละรายการ (พารามิเตอร์เสริม)
-
ข้อความ – นี่เป็นพารามิเตอร์เสริม นี่คือข้อความที่ผู้ใช้กำหนดเมื่อเรียกใช้ฟังก์ชัน
การติดตั้งโมดูลยืนยัน
npm install assert
โมดูลยืนยันเป็นโมดูล inbuilt Node.js ดังนั้นคุณสามารถข้ามขั้นตอนนี้ได้เช่นกัน คุณสามารถตรวจสอบเวอร์ชันยืนยันได้โดยใช้คำสั่งต่อไปนี้เพื่อรับโมดูลการยืนยันล่าสุด
npm version assert
การนำเข้าโมดูลในฟังก์ชันของคุณ
const assert = require("assert").strict;
ตัวอย่าง
สร้างไฟล์ที่มีชื่อ – assertRejects.js และคัดลอกข้อมูลโค้ดด้านล่าง หลังจากสร้างไฟล์แล้ว ให้ใช้คำสั่งด้านล่างเพื่อรันโค้ดนี้
node assertRejects.js
assertRejects.js
/// Importing the module const assert = require('assert').strict; (async () => { assert.strictEqual(21,20) await assert.rejects( async () => { throw new TypeError('Value passed is Incorrect !'); }, (err) => { assert.strictEqual(err.name, 'TypeError'); assert.strictEqual(err.message, 'Incorrect value'); return true; } ).then(() => { console.log("This is a reject demp") }); })();
ผลลัพธ์
C:\home\node>> node assertRejects.js (node:259525) UnhandledPromiseRejectionWarning: AssertionError [ERR_ASSERTION]: Input A expected to strictly equal input B: + expected - actual - 21 + 20 at /home/node/test/assert.js:5:9 at Object. (/home/node/test/assert.js:18:3) at Module._compile (internal/modules/cjs/loader.js:778:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10) at Module.load (internal/modules/cjs/loader.js:653:32) at tryModuleLoad (internal/modules/cjs/loader.js:593:12) at Function.Module._load (internal/modules/cjs/loader.js:585:3) at Function.Module.runMain (internal/modules/cjs/loader.js:831:12) at startup (internal/bootstrap/node.js:283:19) at bootstrapNodeJSCore (internal/bootstrap/node.js:623:3) (node:259525) 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(). (rejection id: 1) (node:259525) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
ตัวอย่าง
ลองดูอีกตัวอย่างหนึ่ง
// Importing the module const assert = require('assert').strict; (async () => { assert.strictEqual(21,21) await assert.rejects( async () => { throw new TypeError('Value passed is Incorrect !'); }, (err) => { assert.strictEqual(err.name, 'TypeError'); assert.strictEqual(err.message, 'Value passed is Incorrect !'); return true; } ).then(() => { console.log("This is a reject demo success") }); })();
ผลลัพธ์
C:\home\node>> node assertRejects.js This is a reject demo success