在 Node.js 中编写单元测试

来自:小麦

Node.js 从 v18.x 开始,内置了一个自带的测试运行器Test Runner),你可以使用它来替代第三方测试框架如 Jest,进行单元测试。

使用 node:test 模块编写测试

Node.js 自带的测试运行器通过 node:test 模块提供。你可以直接在 .js 文件中编写测试代码。

示例:编写可测试模块

创建一个文件 math.js

// math.js
export function add(a, b) {
  return a + b;
}

示例:编写测试文件

创建一个测试文件 math.test.js

// math.test.js
import { test, expect } from 'node:test';
import { add } from './math';

test('adds 1 + 2 to equal 3', () => {
  expect(add(1, 2)).toBe(3);
});

test('adds 5 + 7 to equal 12', () => {
  expect(add(5, 7)).toBe(12);
});

test('async test example', async () => {
  const result = await Promise.resolve(100);
  expect(result).toBe(100);
});

运行测试

在终端中运行以下命令执行测试:

node test.js

你将看到类似如下输出:

✓ adds 1 + 2 to equal 3
✓ adds 5 + 7 to equal 12

配置 npm 脚本(可选)

你也可以在 package.json 中添加一个脚本来简化测试运行:

{
  "scripts": {
    "test": "node test.js"
  }
}

然后运行:

npm run test

总结

  • Node.js 自带的测试运行器(node:test)是一个轻量级、无需额外安装的测试工具。

  • 它支持同步和异步测试,并提供断言(expect)功能。

  • 对于初学者来说,它是替代 Jest 的一个简单选择,尤其适合学习和小型项目。

  • 如果你需要更强大的功能(如 Mock、覆盖率报告等),可以考虑使用 Jest 或 Mocha。