Szybka pomoc

Ściągawka modułu assert w Node.js

Szybki przewodnik po module assert w Node.js: ścisłe asercje, głębokie porównanie obiektów, rzucanie wyjątków oraz walidacja błędów asynchronicznych.

· Opublikowano

Wbudowany moduł assert w Node.js dostarcza mechanizm asercji do sprawdzania niezmienników w testach oraz walidacji w czasie wykonania.

Ścisłe asercje (Zalecane)

W nowoczesnym Node.js zawsze importuj assert/strict, aby wymusić ścisłą równość (===):

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

Prawdziwość i równość

// Sprawdzenie wartości prawdziwej (truthy)
assert(val, 'Expected value to be truthy');
assert.ok(val, 'Alias dla assert()');

// Ścisła równość (===)
assert.equal(actual, expected);
assert.notEqual(actual, expected);

// Ścisła głęboka równość obiektów
assert.deepEqual({ a: 1, b: [2] }, { a: 1, b: [2] });
assert.notDeepEqual({ a: 1 }, { a: 2 });

Obsługa błędów i wyjątków

assert.throws()

Sprawdza, czy funkcja rzuca oczekiwany błąd:

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

assert.doesNotThrow()

Sprawdza, czy blok wykonuje się bez nieobsłużonego wyjątku:

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

Asercje asynchroniczne

// Weryfikacja odrzucenia (rejection) dla obietnic
await assert.rejects(
  async () => {
    await fetchInvalidUrl();
  },
  {
    name: 'TypeError'
  }
);

// Weryfikacja pomyślnego rozwiązania obietnicy
await assert.doesNotReject(async () => {
  await fetchValidUrl();
});

Źródła

Powiązane tematy