Node.js - assert.equal() 函数



assert 模块提供了一组用于验证不变量的 assert 函数。assert.equal() 函数是 Node.js 的 assert 模块的内置函数。

Node.js assert.equal() 函数将使用 == 运算符测试其两个输入参数的浅相等性。

每当两个参数相似时,该函数都不会抛出 AssertionError。如果两个参数不相似,则它将向输出抛出 AssertionError。此函数是 assert.strictEqaul() 函数的别名。

语法

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


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

参数

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

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

返回值

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

注意 − 两边( actual expected )的 NaN 被认为是相同的,因为它经过特殊处理和处理。

在下面的示例中,我们将两个相同的整数传递作为 Node.js assert.equal() 函数的 action 和预期参数。


const assert = require('assert');
var num1 = 99;
var num2 = 99;
assert.equal(num1, num2, 'Both numbers are same');

输出

由于 action 和 expected 都是相同的,因此在执行代码后,函数不会向输出抛出任何 AssertionError。

// 不返回任何内容

在下面的示例中,我们将两个相同的字符串传递给 action 和 Node.js assert.equal() 函数的预期参数。


const assert = require('assert');
var txt1 = 'Qikepu';
var txt2 = 'Qikepu';
assert.equal(txt1, txt2, 'Both messages are same');

输出

当我们编译并运行代码时,该函数不会将 AssertionError 抛向输出,因为 action 和 expected 都是相同的。

// 不返回任何内容

在下面的示例中,我们将两个输入传递给 actual 参数,一个字符串传递给Node.js assert.equal()函数的 expected 参数。


const assert = require('assert');
var num1 = 7;
var txt1 = '7';
assert.equal(num1, txt1, 'Both values are same');

输出

当我们编译并运行代码时,该函数不会将 AssertionError 抛出到输出中。这是真的,因为 7 == '7'。

// 不返回任何内容

在下面的示例中,我们将两个不同的整数传递给 action 和函数的预期参数。


const assert = require('assert');
assert.equal(45, 66, 'Both numbers are not identical');

输出

当我们编译并运行代码时,该函数会将 AssertionError 和消息抛出到输出中。这是错误的,因为 45 !== 66。

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

AssertionError [ERR_ASSERTION]: Both numbers are not identical
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)

在下面的示例中,我们将两个输入传递,一个整数传递给 actual 参数,一个字符串传递给函数的 expected 参数。


const assert = require('assert');
assert.equal(45, 'Hello', 'Both values are not identical');

输出

当我们编译并运行代码时,该函数不会将 AssertionError 抛出到输出中。这是错误的,因为两个值都是不同的 45 !== 'Hello'。

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

AssertionError [ERR_ASSERTION]: Both values are not identical
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)