O módulo nativo assert do Node.js fornece um framework de asserções para checagem de invariantes em testes e validações em tempo de execução.
Asserções Estritas (Recomendado)
Importe sempre assert/strict no Node.js moderno para exigir igualdade estrita (===):
const assert = require('assert/strict');
// ou import assert from 'node:assert/strict';
Veracidade e Igualdade
// Verificação de valor truthy
assert(val, 'Expected value to be truthy');
assert.ok(val, 'Alias para assert()');
// Igualdade estrita (===)
assert.equal(actual, expected);
assert.notEqual(actual, expected);
// Igualdade profunda estrita de objetos
assert.deepEqual({ a: 1, b: [2] }, { a: 1, b: [2] });
assert.notDeepEqual({ a: 1 }, { a: 2 });
Tratamento de Erros & Exceções
assert.throws()
Verifica se uma função lança o erro esperado:
assert.throws(
() => {
throw new TypeError('Invalid parameter');
},
{
name: 'TypeError',
message: 'Invalid parameter'
}
);
assert.doesNotThrow()
Verifica se um bloco é executado sem lançar uma exceção não tratada:
assert.doesNotThrow(() => {
safeOperation();
});
Asserções Assíncronas
// Verificação de rejeição (rejection) para promises
await assert.rejects(
async () => {
await fetchInvalidUrl();
},
{
name: 'TypeError'
}
);
// Verificação de resolução positiva para promises
await assert.doesNotReject(async () => {
await fetchValidUrl();
});