【Node.js24.x】ok::notDeepStrictEqual()メソッドの使い方
notDeepStrictEqualメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
notDeepStrictEqualメソッドは、Node.jsのassertモジュールに属し、二つの値が厳密に同じではないことを検証するために実行するメソッドです。このメソッドは、主にソフトウェアのテストコードやデバッグの場面で利用され、プログラムが特定の条件下で期待通りの結果(値が異なること)を出力するかどうかを確認する際に非常に役立ちます。
「厳密な比較」とは、単に値が等しいかどうかだけでなく、比較する二つの値の型、中身、そしてオブジェクトや配列などの複雑なデータ構造においては、その内部の構造までを再帰的に深く検査することを意味します。例えば、同じように見える二つのオブジェクトでも、プロパティの順番や参照先が異なれば、それらは「厳密には異なる」と判断されます。
具体的には、このメソッドに渡された二つの値が、型、値、内部構造のいずれかにおいて一つでも異なる点があれば、検証は成功し、プログラムはエラーを発生させずに続行されます。しかし、もし二つの値が型、値、そして内部の構造まで含めて完全に一致すると判断された場合、このメソッドはAssertionErrorをスローし、検証の失敗を通知します。これにより、開発者は、特定の値が絶対に一致してはならないというビジネスロジックや設計上の意図が正しく実装されていることを保証できます。引数には、比較対象となる二つの値と、オプションで検証失敗時に表示されるカスタムメッセージを指定することが可能です。
構文(syntax)
1const assert = require('assert'); 2 3const actualValue = { id: 1, data: { name: 'Alice' } }; 4const expectedValue = { id: 1, data: { name: 'Bob' } }; 5 6assert.notDeepStrictEqual(actualValue, expectedValue, 'The objects must not be strictly deep equal.');
引数(parameters)
actual, expected, message = undefined
- actual: any: 比較対象となる実際の値
- expected: any: 比較対象となる期待される値
- message: string | undefined: テストが失敗した場合に表示されるメッセージ (省略可能)
戻り値(return)
戻り値なし
戻り値はありません