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();
});