Riferimento rapido

Cheatsheet Modulo assert di Node.js

Guida rapida per il modulo assert di Node.js: asserzioni strette, controlli di uguaglianza profonda, eccezioni e validazione asincrona degli errori.

· Pubblicato

Il modulo nativo assert di Node.js fornisce un framework di asserzioni per verificare invarianti nei test e nelle validazioni a runtime.

Asserzioni Strette (Consigliato)

Importa sempre assert/strict nelle versioni moderne di Node.js per imporre l’uguaglianza stretta (===):

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

Veridicità & Uguaglianza

// Controllo di valore truthy
assert(val, 'Expected value to be truthy');
assert.ok(val, 'Alias di assert()');

// Uguaglianza stretta (===)
assert.equal(actual, expected);
assert.notEqual(actual, expected);

// Uguaglianza profonda stretta tra oggetti
assert.deepEqual({ a: 1, b: [2] }, { a: 1, b: [2] });
assert.notDeepEqual({ a: 1 }, { a: 2 });

Gestione Errori & Eccezioni

assert.throws()

Verifica che una funzione lanci l’errore atteso:

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

assert.doesNotThrow()

Verifica che un blocco venga eseguito senza lanciare eccezioni non gestite:

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

Asserzioni Asincrone

// Verifica di rejection per le promise
await assert.rejects(
  async () => {
    await fetchInvalidUrl();
  },
  {
    name: 'TypeError'
  }
);

// Verifica di risoluzione positiva per le promise
await assert.doesNotReject(async () => {
  await fetchValidUrl();
});

Riferimenti

Argomenti correlati