Node.js 組み込みの assert モジュールは、テストや実行時の不変条件チェックに利用できるアサーションフレームワークを提供します。
厳密なアサーション(推奨)
モダンな 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 の reject(失敗)を検証
await assert.rejects(
async () => {
await fetchInvalidUrl();
},
{
name: 'TypeError'
}
);
// Promise が reject せずに解決することを検証
await assert.doesNotReject(async () => {
await fetchValidUrl();
});