Referencia rápida

Hoja de referencia del módulo assert en Node.js

Guía rápida para el módulo assert de Node.js: aserciones estrictas, comprobaciones de igualdad profunda, lanzamiento de excepciones y validación asíncrona.

· Publicado

El módulo integrado assert de Node.js proporciona un marco de aserciones para verificar invariantes en pruebas y validaciones en tiempo de ejecución.

Aserciones estrictas (Recomendado)

Importa siempre assert/strict en Node.js moderno para exigir igualdad estricta (===):

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

Veracidad e igualdad

// Comprobación de veracidad (truthiness)
assert(val, 'Expected value to be truthy');
assert.ok(val, 'Alias de assert()');

// Igualdad estricta (===)
assert.equal(actual, expected);
assert.notEqual(actual, expected);

// Igualdad profunda estricta entre objetos
assert.deepEqual({ a: 1, b: [2] }, { a: 1, b: [2] });
assert.notDeepEqual({ a: 1 }, { a: 2 });

Manejo de errores y excepciones

assert.throws()

Verifica que una función lance un error esperado:

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

assert.doesNotThrow()

Verifica que un bloque se ejecute sin lanzar excepciones no controladas:

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

Aserciones asíncronas

// Verificación de rechazo (rejection) en promesas
await assert.rejects(
  async () => {
    await fetchInvalidUrl();
  },
  {
    name: 'TypeError'
  }
);

// Verificación de resolución exitosa en promesas
await assert.doesNotReject(async () => {
  await fetchValidUrl();
});

Referencias

Temas relacionados