Node.js assert 模块

assert 模块提供了一组用于验证不变量的断言函数。

该模块用于测试 Node.js 应用程序中功能的表达式。如果测试结果返回 falseassert 将抛出错误并停止程序。您可以将 assert 模块与 MochaChai 等单元测试工具结合使用。

什么是不变量?

不变量是需要在程序中的某个点返回 true 的表达式或条件。让我们仔细看看下面的表达式:

let a = 5
let b = 3
let correct = (a > b)
console.log (correct)

在终端或 Bash 上运行时,应该返回 true。如果由于某种原因,上面的应用程序返回 false,并且有其他一些表达式依赖于它,该怎么办?

如果我们将大于号 > 更改为 <,并运行此代码,我们将得到 false。让我们想象一下,上面符号的改变是一个错误,程序会因为这个错误返回一个意外的结果。开发团队如何追踪这个错误并确保不会再次发生?

上面的表达式是一个不变量的例子。为了保证代码按预期返回 true,Node.js 开发团队使用 assert 模块测试表达式。

严格断言模式和传统断言模式

严格模式下的断言涉及使用严格相等比较方法来验证不变量。在严格断言模式下,非严格方法的行为与其相对严格的方法相同。

例如,assert.deepEqual() 的行为类似于 assert.deepStrictEqual(),而 assert.notEqual() 的行为类似于 assert.notStrictEqual()

两种模式如下:

// 严格断言模式
const assert = require('assert').strict
const assert = require('assert/strict')

// 旧版断言模式
const assert = require('assert')

在旧模式中,不变量的比较涉及抽象相等比较的使用。建议始终使用严格模式来比较不变量的实际值和预期值。

以下是它们的两种模式的方法。

断言方法

严格断言模式

  • assert.deepStrictEqual (actual, expected[, message]) 方法
  • assert.fail([message]) 方法
  • assert.ifError(value) 方法
  • assert.doesNotMatch(string, regexp[, message]) 方法
  • assert.doesNotReject(asyncFn[, error][, message]) 方法

传统断言模式

  • assert.deepEqual(actual, expected[, message]) 方法
  • assert.equal(actual, expected[, message]) 方法
  • assert.notEqual(actual, expected[, message]) 方法
  • assert.notDeepEqual(actual, expected[, message]) 方法

详细示例文档都有,自己看去。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值