Node.jsのassert.notDeepStrictEqual()関数
アサートモジュールは、関数アサーションに使用されるさまざまな機能を提供します。 assert.notDeepStrictEqualは、2つのオブジェクトがdeepstrictequalであってはならないことをテストします。両方のオブジェクトが厳密に等しい場合、アサーションエラーがスローされます。
構文
assert.notDeepStrictEqual(actual, expected, [message])
パラメータ
上記のパラメータは以下のように記述されます-
-
実際 –このパラメーターには、比較する必要のある実際の値が含まれています。
-
期待される –このパラメーターは、実際のパラメーターに対して評価される期待値を保持します。
-
メッセージ –これはオプションのパラメーターです。これは、関数の実行時に出力されるユーザー定義のメッセージです。
アサートモジュールのインストール
npm install assert
assertモジュールは組み込みのNode.jsモジュールであるため、この手順をスキップすることもできます。次のコマンドを使用してアサートバージョンを確認し、最新のアサートモジュールを取得できます。
npm version assert
関数にモジュールをインポートする
const assert = require("assert").strict; 例
notDeepStrictEqual.jsという名前のファイルを作成し、以下のコードスニペットをコピーします。ファイルを作成したら、以下のコマンドを使用してこのコードを実行します。
node notDeepStrictEqual.js
notDeepStrictEqual.js
// Importing the module
const assert = require('assert').strict;
try {
// Checking if actual and expected parameters are equal
assert.notDeepStrictEqual({ a: '21' }, { a: '24' });
console.log("Objects are not equal")
} catch(error) {
console.log("Error: ", error)
} 出力
C:\home\node>> node notDeepStrictEqual.js Objects are not equal
例
もう1つの例を見てみましょう。
// Importing the module
const assert = require('assert').strict;
try {
// Checking if actual and expected parameters are equal
assert.notDeepStrictEqual({ a: '21' }, { a: '21' });
console.log("Objects are not equal")
} catch(error) {
console.log("Error: ", error)
} 出力
C:\home\node>> node notDeepStrictEqual.js
Error: { AssertionError [ERR_ASSERTION]: Identical input passed to
notDeepStrictEqual:
{
a: '21'
}
at Object. (/home/node/test/assert.js:6:9)
at Module._compile (internal/modules/cjs/loader.js:778:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
at Module.load (internal/modules/cjs/loader.js:653:32)
at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
at Function.Module._load (internal/modules/cjs/loader.js:585:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:831:12)
at startup (internal/bootstrap/node.js:283:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:623:3)
generatedMessage: true,
name: 'AssertionError [ERR_ASSERTION]',
code: 'ERR_ASSERTION',
actual: { a: '21' },
expected: { a: '21' },
operator: 'notDeepStrictEqual' } 上記の例では、値が21であり、文字列型であることがわかります。
-
JavaScriptの関数プロトタイプ
JavaScriptで作成された関数には、JavaScriptエンジンによって追加されたプロトタイププロパティが常にあります。プロトタイププロパティは、デフォルトでコンストラクタプロパティを含むオブジェクトです。関数protoypeには、-からアクセスできます。 functionName.prototype オブジェクトが関数コンストラクターを使用して作成されている場合、このプロトタイププロパティを使用して、その関数コンストラクターによって作成されたオブジェクト間でメソッドまたはプロパティを共有できます。 以下は、JavaScriptの関数プロトタイプのコードです- 例 <!DOCT
-
JavaScriptでの関数の借用。
call()、apply()、bind()は、JavaScriptのメソッドを借用するために使用されます。 以下は、JavaScriptでメソッドを借用するためのコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> &