Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

ฟังก์ชัน assert.rejects() ใน Node.js

ฟังก์ชัน assert.rejects รอ promise จาก async function asyncfn หาก asyncfn เป็นฟังก์ชัน จะเรียกทันทีและรอ promise คืนมา จากนั้นตรวจสอบว่า promise ถูก reject หรือไม่

ไวยากรณ์

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

พารามิเตอร์

  • asyncfn – async function ที่คาดว่าจะ reject
  • error – Class, RegExp, validation function หรือ object สำหรับตรวจสอบ error (ทางเลือก)
  • message – ข้อความผู้ใช้กำหนด (ทางเลือก)

ตัวอย่าง: การ reject ที่ผิดพลาด (assert.strictEqual ล้มเหลวก่อน)

const assert = require('assert').strict;

(async () => {
  assert.strictEqual(21, 20); // นี้จะโยน error ทันที
  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 demo"); });
})();

ผลลัพธ์

โยน UnhandledPromiseRejectionWarning เนื่องจาก assert.strictEqual(21,20) ล้มเหลวก่อนถึง assert.rejects

ตัวอย่าง: ใช้งานถูกต้อง

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"); });
})();

ผลลัพธ์

This is a reject demo success