Γρήγορη αναφορά

Σκονάκι Ενότητας assert στο Node.js

Γρήγορος οδηγός αναφοράς για τη μονάδα assert του Node.js: αυστηρά assertions, έλεγχοι βαθιάς ισότητας, εξαιρέσεις και ασύγχρονος έλεγχος σφαλμάτων.

· Δημοσιεύτηκε

Η ενσωματωμένη μονάδα assert του Node.js παρέχει ένα πλαίσιο ισχυρισμών για έλεγχο αναλλοίωτων σε δοκιμές και επικυρώσεις χρόνου εκτέλεσης.

Αυστηρά Assertions (Συνιστάται)

Εισάγετε πάντα το assert/strict σε σύγχρονο Node.js ώστε να επιβάλλεται αυστηρή ισότητα (===):

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

Αληθοφάνεια (Truthiness) & Ισότητα

// Έλεγχος αληθούς τιμής
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();
});

Ασύγχρονα Assertions

// Επιβεβαίωση απόρριψης (rejection) για promises
await assert.rejects(
  async () => {
    await fetchInvalidUrl();
  },
  {
    name: 'TypeError'
  }
);

// Επιβεβαίωση επιτυχούς ολοκλήρωσης (resolution) για promises
await assert.doesNotReject(async () => {
  await fetchValidUrl();
});

Αναφορές

Σχετικά θέματα