在 Linux 环境下对 Node.js 项目进行单元测试,主流工具主要包括 Mocha、Jest 和 Jasmine。本文以 Mocha 为例,带你走通核心流程,掌握关键步骤后,切换到其他框架也大同小异。

第一步,搭建基础环境——确保系统中已安装 Node.js 和 npm。若尚未安装,可前往官网下载安装包,按默认提示完成安装即可。
第二步,进入项目根目录,如果尚未创建 package.json,运行 npm init 快速生成。这个文件相当于项目的身份证,后续依赖安装和脚本编写都依赖它。
第三步,将 Mocha 安装为开发依赖:
npm install --sa ve-dev mocha
第四步,在项目中创建测试文件夹,通常命名为 test,然后在该文件夹下新建测试文件,例如 example.test.js。命名时使用 .test 或 .spec 后缀是业内通用的约定。
第五步,编写测试用例。下面是一个最基础的示例:
const assert = require('assert');
const sum = require('../sum'); // 假设存在一个 sum.js 模块
describe('Array', function() {
describe('#indexOf()', function() {
it('should return -1 when the value is not present', function() {
assert.equal(-1, [1, 2, 3].indexOf(4));
});
});
});
本例中,使用 describe 对测试进行分组,it 定义单个测试用例,assert 负责断言。你也可以选用其他断言库(如 chai),但 Node 原生的 assert 模块已经能够满足基本需求。
第六步,在 package.json 的 scripts 字段中新增一个测试脚本:
"scripts": {
"test": "mocha"
}
第七步,在终端执行 npm test,Mocha 会自动扫描 test 目录下的测试文件并运行,测试结果会清晰展示在终端中。
当然,这只是一个入门演示。Mocha 还支持异步测试、超时控制、钩子函数(before/after)等高级功能,测试覆盖率可以借助 Istanbul(或 c8)实现。如果你觉得 Mocha 的配置稍显繁琐,Jest 的开箱即用体验也很不错,自带断言、模拟和覆盖率功能。Jasmine 是老牌框架,风格与 Mocha 相似,但内置了更多工具。具体选用哪个,可以根据团队习惯和项目需求来决定。
更多细节可查阅 Mocha 官方文档,其中提供了完整的 API 说明和最佳实践指南。
