مرجع سريع

ورقة غش وحدة assert في Node.js

دليل مرجعي سريع لوحدة assert في Node.js: التأكيدات الصارمة، والتحقق من التساوي العميق، ورمي الاستثناءات، والتحقق من الأخطاء غير المتزامنة.

· تاريخ النشر

توفر وحدة assert المدمجة في Node.js إطار تأكيدات للتحقق من الثوابت في الاختبارات وعمليات التحقق وقت التشغيل.

التأكيدات الصارمة (موصى به)

استورد دائماً assert/strict في Node.js الحديث لفرض المساواة الصارمة (===):

const assert = require('assert/strict');
// أو import assert from 'node:assert/strict';

اختبار القيمة المنطقية والمساواة

// التحقق من كون القيمة منطقية صحيحة (truthy)
assert(val, 'Expected value to be truthy');
assert.ok(val, 'اسم مستعار لـ assert()');

// المساواة الصارمة (===)
assert.equal(actual, expected);
assert.notEqual(actual, expected);

// المساواة العميقة الصارمة للكائنات
assert.deepEqual({ a: 1, b: [2] }, { a: 1, b: [2] });
assert.notDeepEqual({ a: 1 }, { a: 2 });

معالجة الأخطاء والاستثناءات

assert.throws()

يتحقق من أن الدالة ترمي الخطأ المتوقع:

assert.throws(
  () => {
    throw new TypeError('Invalid parameter');
  },
  {
    name: 'TypeError',
    message: 'Invalid parameter'
  }
);

assert.doesNotThrow()

يتحقق من أن الكتلة تعمل دون رمي استثناء غير معالج:

assert.doesNotThrow(() => {
  safeOperation();
});

التأكيدات غير المتزامنة

// التحقق من رفض الوعد (Promise rejection)
await assert.rejects(
  async () => {
    await fetchInvalidUrl();
  },
  {
    name: 'TypeError'
  }
);

// التحقق من نجاح الوعد دون رفض
await assert.doesNotReject(async () => {
  await fetchValidUrl();
});

المراجع

موضوعات ذات صلة