• Node.js Video Tutorials

Node.js assert.notDeepStrictEqual() 函式



Node.js assert.notDeepStrictEqual() 函式 將深度、嚴格且相等地比較傳遞的輸入(實際值預期值),前提是這兩個值不相等。如果兩個輸入值相同,它將丟擲一個 AssertionError;如果兩個值不同,則它不返回任何內容。

注意 - assert 模組提供了一組斷言函式,用於驗證不變式。Node.js assert.notDeepStrictEqual() 函式是 Node.js assert 模組的內建函式。

語法

以下是 Node.js assert.notDeepStrictEqual() 函式 的語法:

assert.notDeepStrictEqual(actual, expected[, message]);

引數

此函式接受三個引數。下面將對它們進行描述。

  • actual - (必填)此引數中傳遞的值將被評估。該值可以是任何型別。

  • expected - (必填)此引數中傳遞的值將與 actual 值進行比較。該值可以是任何型別。

  • message - (可選)可以將字串或錯誤型別作為輸入傳遞到此引數中。

返回值

如果 actualexpected 匹配,則此函式將在終端上返回 AssertionError。

示例

在下面的示例中,我們建立了兩個具有不同屬性的巢狀物件。然後,我們將這兩個物件作為 actualexpected 傳遞給 Node.js assert.notDeepStrictEqual() 函式,並將文字傳遞給 message 引數。

const assert = require('assert');
var Movie1 = {
   Name : 'RRR',
   Director : 'Rajamouli',
   Boxoffice : {
      "2022-2023" : '1200 crores',
   },
};

var Movie2 = {
   Name : 'KGf',
   Director : 'Prasanth Neel',
   Boxoffice : {
      "2022-2023" : '1400 crores',
   },
};

assert.notDeepStrictEqual(Movie1, Movie2, "Both the objects are NOT EQUAL");

輸出

由於實際結果和預期結果不同,因此在編譯和執行程式碼時,該函式不會丟擲 AssertionError。

// Returns nothing

示例

在下面的示例中,我們建立了兩個具有相似屬性的巢狀物件。然後,我們將這兩個物件傳遞給 actual 和 expected 引數,並將文字傳遞給 message 引數。

const assert = require('assert');
var Movie1 = {
   Name : 'RRR',
   Director : 'Rajamouli',
   Boxoffice : {
      "2022-2023" : '1200 crores',
   },
};

var Movie2 = {
   Name : 'RRR',
   Director : 'Rajamouli',
   Boxoffice : {
      "2022-2023" : '1200 crores',
   },
};

assert.notDeepStrictEqual(Movie1, Movie2, "Both the objects are EQUAL");

輸出

由於實際結果和預期結果相同,因此該函式將丟擲 AssertionError 以及訊息到輸出。

assert.js:79
   throw new AssertionError(obj);
   ^
   
AssertionError [ERR_ASSERTION]: Both the objects are EQUAL
   at Object.<anonymous> (/home/cg/root/639c30a0a5fb2/main.js:19:8)
   at Module._compile (internal/modules/cjs/loader.js:702:30)
   at Object.Module._extensions..js (internal/modules/cjs/loader.js:713:10)
   at Module.load (internal/modules/cjs/loader.js:612:32)
   at tryModuleLoad (internal/modules/cjs/loader.js:551:12)
   at Function.Module._load (internal/modules/cjs/loader.js:543:3)
   at Function.Module.runMain (internal/modules/cjs/loader.js:744:10)
   at startup (internal/bootstrap/node.js:238:19)
   at bootstrapNodeJSCore (internal/bootstrap/node.js:572:3)

示例

在下面的示例中,我們將 -0 和 -0 傳遞給函式進行比較。

const assert = require('assert');

assert.notDeepStrictEqual(-0, -0, "Both the values are EQUAL");

輸出

當我們編譯並執行程式碼時,該函式將向輸出丟擲 AssertionError,因為 actualexpected 相同。

assert.js:79
   throw new AssertionError(obj);
   ^
   
AssertionError [ERR_ASSERTION]: Both the values are EQUAL
   at Object.<anonymous> (/home/cg/root/639c30a0a5fb2/main.js:3:8)
   at Module._compile (internal/modules/cjs/loader.js:702:30)
   at Object.Module._extensions..js (internal/modules/cjs/loader.js:713:10)at Module.load (internal/modules/cjs/loader.js:612:32)
   at tryModuleLoad (internal/modules/cjs/loader.js:551:12)
   at Function.Module._load (internal/modules/cjs/loader.js:543:3)
   at Function.Module.runMain (internal/modules/cjs/loader.js:744:10)
   at startup (internal/bootstrap/node.js:238:19)
   at bootstrapNodeJSCore (internal/bootstrap/node.js:572:3)

示例

在下面的示例中,我們將 -0 和 0 傳遞給函式進行比較。

const assert = require('assert');

assert.notDeepStrictEqual(-0, 0, "Both the values are NOT EQUAL");

輸出

當我們編譯並執行程式碼時,該函式不會向輸出丟擲 AssertionError,因為 actualexpected 不相同。

// Returns nothing

示例

在下面的示例中,我們將兩個相同的字串作為輸入傳遞給 actualexpected 引數。

const assert = require('assert');

assert.notDeepStrictEqual('Hello', 'Hello');

輸出

由於實際結果和預期結果相同,因此在編譯和執行程式碼時,該函式將向輸出丟擲 AssertionError。

由於 message 引數內沒有傳遞文字,因此該函式將分配預設錯誤訊息。

assert.js:79
   throw new AssertionError(obj);
   ^
   
AssertionError [ERR_ASSERTION]: Identical input passed to notDeepStrictEqual: 'Hello'
   at Object.<anonymous> (/home/cg/root/639c30a0a5fb2/main.js:3:8)
   at Module._compile (internal/modules/cjs/loader.js:702:30)
   at Object.Module._extensions..js (internal/modules/cjs/loader.js:713:10)
   at Module.load (internal/modules/cjs/loader.js:612:32)
   at tryModuleLoad (internal/modules/cjs/loader.js:551:12)
   at Function.Module._load (internal/modules/cjs/loader.js:543:3)
   at Function.Module.runMain (internal/modules/cjs/loader.js:744:10)
   at startup (internal/bootstrap/node.js:238:19)
   at bootstrapNodeJSCore (internal/bootstrap/node.js:572:3)
nodejs_assert_module.htm
廣告

© . All rights reserved.