【Node.js24.x】ok::notDeepEqual()メソッドの使い方
notDeepEqualメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
notDeepEqualメソッドは、Node.jsの組み込みであるassertモジュールに属し、二つの値が「深く」等しくないことを検証するために使用されるメソッドです。主にソフトウェアのテストコードにおいて、期待される結果と実際の結果が異なることを確認する際に重要な役割を果たします。
このメソッドにおける「深く」という比較は、プリミティブ値(数値、文字列、真偽値など)だけでなく、オブジェクトや配列の内部構造にまで踏み込んで行われます。具体的には、二つのオブジェクトや配列のプロパティや要素が、再帰的にすべて比較され、一つでも異なる部分があれば、「深く等しくない」と判断されます。例えば、二つのオブジェクトが異なるプロパティ値を持っていたり、二つの配列の要素の順序や内容が異なっていたりする場合に、このメソッドは「深く等しくない」と判断します。
notDeepEqualメソッドは、比較したい第一引数の値と第二引数の値を評価します。もしこれら二つの値が「深く等しい」と判断された場合、AssertionErrorという種類のエラーを発生させ、テストが失敗したことを示します。一方で、二つの値が実際に「深く等しくない」と判断された場合は、エラーを発生させずに処理を続行します。第三引数には、エラー発生時に表示される任意のカスタムメッセージを指定することができ、これによりデバッグ作業が効率化されます。この機能は、複雑なデータ構造を持つコードの振る舞いを検証し、その信頼性を保証するために非常に有用です。
構文(syntax)
1const assert = require('assert'); 2 3const actual = { a: 1, b: { c: 'value1' } }; 4const expected = { a: 1, b: { c: 'value2' } }; 5 6assert.notDeepEqual(actual, expected, 'The actual and expected values should not be deeply equal.');
引数(parameters)
actual, expected, message
- actual: any: 比較対象となる実際の値
- expected: any: 比較対象となる期待される値
- message: string: アサーションが失敗した場合に表示されるメッセージ
戻り値(return)
戻り値なし
戻り値はありません