빠른 참조

Node.js assert 모듈 치트 시트

Node.js assert 모듈 빠른 참고 가이드: 엄격한 단언, 깊은 동등성 검사, 예외 발생 테스트 및 비동기 오류 검증 정리.

· 게시일

내장 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();
});

참고 자료

관련 주제