Встроенный модуль 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();
});