Référence rapide

Aide-mémoire Module assert de Node.js

Guide rapide du module assert de Node.js : assertions strictes, égalité profonde, vérification d’exceptions et assertions asynchrones.

· Publié le

Le module intégré assert de Node.js fournit un ensemble d’assertions pour contrôler les invariants dans les tests et les validations à l’exécution.

Assertions strictes (Recommandé)

Importez toujours assert/strict dans un environnement Node.js moderne afin d’imposer l’égalité stricte (===) :

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

Véracité et égalité

// Vérification de valeur vraie (truthy)
assert(val, 'Expected value to be truthy');
assert.ok(val, 'Alias de assert()');

// Égalité stricte (===)
assert.equal(actual, expected);
assert.notEqual(actual, expected);

// Égalité profonde stricte d’objets
assert.deepEqual({ a: 1, b: [2] }, { a: 1, b: [2] });
assert.notDeepEqual({ a: 1 }, { a: 2 });

Gestion des erreurs et exceptions

assert.throws()

Vérifie qu’une fonction lève bien l’erreur attendue :

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

assert.doesNotThrow()

Vérifie qu’un bloc s’exécute sans lever d’exception non gérée :

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

Assertions asynchrones

// Vérification du rejet (rejection) d’une promesse
await assert.rejects(
  async () => {
    await fetchInvalidUrl();
  },
  {
    name: 'TypeError'
  }
);

// Vérification de la résolution d’une promesse
await assert.doesNotReject(async () => {
  await fetchValidUrl();
});

Références

Sujets associés