• 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
广告