Node.js - assert.notStrictEqual() 函数



Node.js assert.notStrictEqaul() 函数是 Node.js 的 assert 模块的内置函数。它用于验证给定参数的严格相等性。

此函数用于检查两个值是否不相等。它检查类型和值的相等性,这与严格的相等运算符 (===) 不同,后者只检查值相等性。这意味着,如果两个变量具有不同的类型但值相同,则返回 true,如果它们具有相同的类型但值不同,则返回 false。

此函数将使用“!=”运算符来测试 actual 参数和 expected 参数。如果值相等,此函数将抛出 AssertionError。否则,如果值不相同,则函数不会生成任何内容。此函数与Node.js assert.notStrictEqual() 函数相同。

语法

以下是assert.notStrictEqaul()函数Node.js的语法 -


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

参数

此函数接受三个参数。下面将对此进行描述。

  • actual − (必填) 将评估此参数中传入的值。该值可以是任何类型。
  • expected − (必填)此参数中传入的值将与actual 值进行比较。该值可以是任何类型。
  • message − (可选) 字符串或错误类型可以作为输入传递给此参数。

返回值

如果 actual 参数和 expected 参数都匹配,则此函数将在终端上返回 AssertionError。

在以下示例中,我们将两个不同的整数传递给 assert.notStrictEqual() 函数的 actual 参数和 expected 参数。


const assert = require('assert');

var N1 = 1;
var N2 = 2;

assert.notEqual(N1, N2, "Both values are Not EQUAL");

输出

由于两个输入参数的结果不同,因此该函数不会向输出抛出 AssertionError。

// Returns nothing

在下面的示例中,我们将两个相同的整数传递给函数的 actual 参数和 expected ​​​​​​​参数。


const assert = require('assert');

var Num1 = 65;
var Num2 = 65;

assert.notEqual(Num1, Num2, "Both integers are EQUAL");

输出

由于两个输入参数的结果相同,因此该函数将抛出 AssertionError 以及消息参数中的文本。

assert.js:79
throw new AssertionError(obj);
^

AssertionError [ERR_ASSERTION]: Both integers are EQUAL
at Object.<anonymous> (/home/cg/root/639c38b0b0aed/main.js:6: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)

在下面的示例中,我们将创建两个具有不同属性的对象。然后,我们将对象作为 actual 对象和 expected ​​​​​​​对象传递给函数,并将文本传递给消息参数。


const assert = require('assert');
var object1 = {
	 	Name : 'Pushpa',
	 	Designation : 'Smuggler'
};

var object2 = {
	 	Name : 'Raj',
	 	Designation : 'Syndicate Head'
};

assert.notEqual(object1, object2, "Both the objects are NOT EQUAL");

输出

由于 actual 结果和 expected ​​​​​​​结果不同,因此在编译和执行代码时,函数不会抛出 AssertionError。

// Returns nothing

在下面的示例中,我们将两个相同的字符串作为输入传递给 actual 参数和 expected ​​​​​​​参数。


const assert = require('assert');

assert.notEqual('The rise', 'The rise', "Both the strings are EQUAL");

输出

由于 actual 结果和 expected ​​​​​​​结果是相同的,因此在编译和执行代码时,该函数将向输出抛出 AssertionError。

assert.js:79
throw new AssertionError(obj);
^

AssertionError [ERR_ASSERTION]: Both the strings are EQUAL
at Object.<anonymous> (/home/cg/root/639c3b5c17b34/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)