Das integrierte assert-Modul von Node.js stellt ein Assertion-Framework zum Prüfen von Invarianten in Tests und zur Laufzeitvalidierung bereit.
Strikte Assertions (Empfohlen)
Importieren Sie in modernem Node.js stets assert/strict, um strikte Gleichheit (===) zu erzwingen:
const assert = require('assert/strict');
// oder import assert from 'node:assert/strict';
Wahrheitswerte & Gleichheit
// Prüfung auf Truthiness
assert(val, 'Expected value to be truthy');
assert.ok(val, 'Alias für assert()');
// Strikte Gleichheit (===)
assert.equal(actual, expected);
assert.notEqual(actual, expected);
// Strikte tiefe Objektgleichheit
assert.deepEqual({ a: 1, b: [2] }, { a: 1, b: [2] });
assert.notDeepEqual({ a: 1 }, { a: 2 });
Fehlerbehandlung & Exceptions
assert.throws()
Prüft, ob eine Funktion einen erwarteten Fehler wirft:
assert.throws(
() => {
throw new TypeError('Invalid parameter');
},
{
name: 'TypeError',
message: 'Invalid parameter'
}
);
assert.doesNotThrow()
Prüft, ob ein Codeblock ohne unbehandelte Exception durchläuft:
assert.doesNotThrow(() => {
safeOperation();
});
Asynchrone Assertions
// Rejection-Prüfung für Promises
await assert.rejects(
async () => {
await fetchInvalidUrl();
},
{
name: 'TypeError'
}
);
// Resolution-Prüfung für Promises
await assert.doesNotReject(async () => {
await fetchValidUrl();
});