解释 Node.js 中 assert 模块的功能

Node.js 的 assert 模块主要用于编写断言测试,帮助开发者验证代码中的条件是否符合预期。它提供了多种断言方法,如基本断言、相等比较、严格相等比较、深度比较和验证抛出的错误等。

常用的方法包括 assert 用于验证真值,assert.equal 使用 == 比较值,assert.strictEqual 使用 === 进行严格比较,assert.deepEqual 用于深度比较对象和数组,assert.throws 用于验证函数是否抛出指定类型的错误。

assert 模块常用于单元测试和调试代码。

来源整理自:vue3js.cn 面试官系列

补充

补充:常用断言方法与示例。

const assert = require('node:assert/strict');

// 基本断言:值为真
assert.ok(1 + 1 === 2, 'math is broken');

// 严格相等(===) / 不等
assert.strictEqual('a', 'a');
assert.notStrictEqual(1, '1');

// 深度比较对象
assert.deepEqual({ a: 1 }, { a: 1 });
assert.deepStrictEqual([1, 2], [1, 2]); // 类型与原型链也一致

// 断言抛错
assert.throws(() => JSON.parse('invalid'), SyntaxError);

// 异步断言
await assert.rejects(async () => {
  await fetch('http://no-such-host');
});

面试提醒:

  • node:assert/strict 是推荐的严格模式,避免 == 带来的隐式类型转换。
  • 现代项目里通常直接用 node:test + assert,无需引入 Mocha/Jest 等第三方库就能跑单元测试。