Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

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


โมดูลยืนยันมีฟังก์ชันต่างๆ มากมายที่ใช้สำหรับการยืนยันฟังก์ชัน หนึ่งในนั้นคือฟังก์ชัน deepStrictEqual() ฟังก์ชันนี้ใช้เพื่อทดสอบความเท่าเทียมกันอย่างลึกซึ้งระหว่างพารามิเตอร์จริงและพารามิเตอร์ที่คาดไว้ ข้อผิดพลาดในการยืนยันจะเพิ่มขึ้นหากไม่เป็นไปตามเงื่อนไข

ไวยากรณ์

assert.deepStrictEqual(actual, expected[, message])

พารามิเตอร์

พารามิเตอร์ข้างต้นอธิบายไว้ด้านล่าง −

  • ของจริง – นี่คือค่าจริงที่จะถูกประเมินโดยเทียบกับพารามิเตอร์ที่คาดไว้

  • คาดว่า – นี่คือค่าพารามิเตอร์ที่คาดไว้ซึ่งตรงกับค่าจริง

  • ข้อความ – พารามิเตอร์นี้เก็บค่าข้อความสตริงที่จะพิมพ์หากพารามิเตอร์จริงและพารามิเตอร์ที่คาดไว้ไม่ตรงกัน เป็นช่องที่ไม่บังคับ

การติดตั้งโมดูลยืนยัน

npm install assert

โมดูลยืนยันเป็นโมดูล inbuilt Node.js ดังนั้นคุณสามารถข้ามขั้นตอนนี้ได้เช่นกัน คุณสามารถตรวจสอบเวอร์ชันยืนยันได้โดยใช้คำสั่งต่อไปนี้เพื่อรับโมดูลการยืนยันล่าสุด

npm version assert

การนำเข้าโมดูลในฟังก์ชันของคุณ

const assert = require("assert");

ตัวอย่าง

สร้างไฟล์ที่มีชื่อ – assertDeepStrict.js และคัดลอกข้อมูลโค้ดด้านล่าง หลังจากสร้างไฟล์แล้ว ให้ใช้คำสั่งต่อไปนี้เพื่อเรียกใช้โค้ดนี้

node assertDeepStrict.js

ยืนยันDeepStrict.js

// Importing the assert module
const assert = require('assert').strict;

try {
   // Calling the deep strict function
   assert.deepStrictEqual({ a: 3 }, { a: '3' });
   console.log("No Error Occured...")
} catch(error) {
   console.log("Error: ", error)
}

ผลลัพธ์

C:\home\node>> node assertDeepStrict.js
Error: { AssertionError [ERR_ASSERTION]: Input A expected to strictly deepequal input B:
+ expected - actual
   {
      - a: 3
      + a: '3'
   }
   at Object.<anonymous> (/home/node/mysql-test/assert.js:6:9)
   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)
generatedMessage: true,
name: 'AssertionError [ERR_ASSERTION]',
code: 'ERR_ASSERTION',
actual: { a: 3 },
expected: { a: '3' },
operator: 'deepStrictEqual' }

เราสามารถเห็นในตัวอย่างข้างต้นว่าค่าหนึ่งเป็นจำนวนเต็มในขณะที่อีกค่าหนึ่งเป็นสตริง ด้วยเหตุนี้ วิธีการจึงทำให้เกิดข้อผิดพลาดข้างต้น

ตัวอย่าง

ลองดูอีกตัวอย่างหนึ่ง

// Importing the assert module
const assert = require('assert').strict;

try {
   // Calling the deep strict function
   // Both the values are string
   assert.deepStrictEqual({ a: '3' }, { a: '3' });
   console.log("No Error Occured...")
} catch(error) {
   console.log("Error: ", error)
}

ผลลัพธ์

C:\home\node>> node assertDeepStrict.js
No Error Occured...