내장 Node.js assert 모듈은 테스트 및 런타임 검증에서 불변 조건을 확인하는 단언(assertion) 프레임워크를 제공합니다.
엄격한 단언 (권장)
최신 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();
});
비동기 단언
// Promise 거부(rejection) 검증
await assert.rejects(
async () => {
await fetchInvalidUrl();
},
{
name: 'TypeError'
}
);
// Promise 정상 이행(resolution) 검증
await assert.doesNotReject(async () => {
await fetchValidUrl();
});