Den inbyggda assert-modulen i Node.js tillhandahåller ett assertion-ramverk för att verifiera invarianter i tester och under körning.
Strikta Assertions (Rekommenderat)
Importera alltid assert/strict i modern Node.js för att tvinga fram strikt likhet (===):
const assert = require('assert/strict');
// eller import assert from 'node:assert/strict';
Sanning & Likhet
// Kontroll av truthy-värde
assert(val, 'Expected value to be truthy');
assert.ok(val, 'Alias för assert()');
// Strikt likhet (===)
assert.equal(actual, expected);
assert.notEqual(actual, expected);
// Strikt djup objektlikhet
assert.deepEqual({ a: 1, b: [2] }, { a: 1, b: [2] });
assert.notDeepEqual({ a: 1 }, { a: 2 });
Felhantering & Undantag
assert.throws()
Verifierar att en funktion kastar ett förväntat fel:
assert.throws(
() => {
throw new TypeError('Invalid parameter');
},
{
name: 'TypeError',
message: 'Invalid parameter'
}
);
assert.doesNotThrow()
Verifierar att ett block körs utan att kasta ett ohanterat undantag:
assert.doesNotThrow(() => {
safeOperation();
});
Asynkrona Assertions
// Verifiering av avvisat promise (rejection)
await assert.rejects(
async () => {
await fetchInvalidUrl();
},
{
name: 'TypeError'
}
);
// Verifiering av uppfyllt promise (resolution)
await assert.doesNotReject(async () => {
await fetchValidUrl();
});