Skip to content

Assertion testing

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

介绍:类似于前端的单元测试,可以用于断言输入和输出是否符合预期。

js
// 该 node:assert 模块提供了一组用于验证不变量的断言函数。
// 介绍:类似于前端的单元测试,可以用于断言输入和输出是否符合预期。

// 二种方式进行模块导入
// const assert = require('node:assert/strict');
const assert = require('node:assert').strict

// 示例错误差异:
assert.deepEqual([[[1, 2, 3]], 4, 5], [[[1, 2, '3']], 4, 5])

// 执行输出错误信息:
// AssertionError: Expected inputs to be strictly deep-equal:
// + actual - expected ... Lines skipped
//
//   [
//     [
// ...
//       2,
// +     3
// -     '3'
//     ],
// ...
//     5
//   ]



// 创建错误信息
// const { message } = new assert.AssertionError({
//   actual: 1,
//   expected: 2,
//   operator: 'lhc--deepEqual',
// })

// try {
//   assert.deepEqual([[[1, 2, 3]], 4, 5], [[[1, 2, '3']], 4, 5])
// } catch (err) {
  // 输出错误信息, 自定义内容
  // assert(err instanceof assert.AssertionError)
  // assert.strictEqual(err.message, message)
  // assert.strictEqual(err.name, 'AssertionError')
  // assert.strictEqual(err.actual, 1)
  // assert.strictEqual(err.expected, 2)
  // assert.strictEqual(err.code, 'ERR_ASSERTION')
  // assert.strictEqual(err.operator, 'lhc--deepEqual')
  // assert.strictEqual(err.generatedMessage, true)
// }

Released under the MIT License.