• Node.js Video Tutorials

Node.js - assert.equal() 函数



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

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

当两个参数相同时,函数不会抛出 AssertionError。如果两个参数不相等,则它会向输出抛出一个 AssertionError。此函数是 assert.strictEqaul() 函数的别名。

语法

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

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

参数

此函数接受三个参数。下面描述了这些参数。

  • actual − (必需)此参数中传递的值将被评估。该值可以是任何类型。

  • expected − (必需)此参数中传递的值将与实际值进行比较。该值可以是任何类型。

  • message − (可选)可以将字符串或错误类型作为输入传递到此参数中。

返回值

如果 actualexpected 不匹配,则此函数将在终端返回 AssertionError

注意 - 两侧(actual & expected)的 NaN 被认为是相同的,因为它被特殊处理。

示例

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

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

输出

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

// Returns nothing

示例

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

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

输出

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

// Returns nothing

示例

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

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

输出

当我们编译并运行代码时,函数不会向输出抛出 AssertionError。这是正确的,因为 7 == '7'

// Returns nothing

示例

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

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)
nodejs_assert_module.htm
广告