Краткий справочник

Шпаргалка по модулю assert в Node.js

Краткий справочник по встроенному модулю assert в Node.js: строгие проверки, глубокое сравнение объектов, проверка исключений и асинхронный контроль.

· Опубликовано

Встроенный модуль assert в Node.js предоставляет систему утверждений для проверки инвариантов в тестах и валидации во время выполнения.

Строгие проверки (Рекомендуется)

В современном Node.js всегда импортируйте assert/strict для принудительного строгого равенства (===):

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

Истинность и равенство

// Проверка истинности значения (truthy)
assert(val, 'Expected value to be truthy');
assert.ok(val, 'Псевдоним для assert()');

// Строгое равенство (===)
assert.equal(actual, expected);
assert.notEqual(actual, expected);

// Строгое глубокое сравнение объектов
assert.deepEqual({ a: 1, b: [2] }, { a: 1, b: [2] });
assert.notDeepEqual({ a: 1 }, { a: 2 });

Обработка ошибок и исключений

assert.throws()

Проверяет, что функция выбрасывает ожидаемое исключение:

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

assert.doesNotThrow()

Проверяет, что блок кода выполняется без необработанных исключений:

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

Асинхронные проверки

// Проверка отклонения промиса (rejection)
await assert.rejects(
  async () => {
    await fetchInvalidUrl();
  },
  {
    name: 'TypeError'
  }
);

// Проверка успешного разрешения промиса
await assert.doesNotReject(async () => {
  await fetchValidUrl();
});

Ссылки

Связанные темы