Node.js 环境安装 Chai - npm 安装与 package.json 配置
通过 npm 安装
在 Node.js 项目中,Chai 通过 npm 分发。标准做法是安装为开发依赖:
npm install chai --save-dev
npm 7+ 可以省略 --save-dev(安装默认写入 devDependencies):
npm install chai -D
package.json 建议配置
Chai 通常与测试运行器一起出现在 devDependencies 中:
{
"scripts": {
"test": "mocha test/**/*.test.js"
},
"devDependencies": {
"chai": "^5.2.0",
"mocha": "^10.7.0"
}
}
关于版本号的选择:
- 推荐用
^前缀(如^5.2.0),自动允许同主版本内的小版本升级。 - CI 环境需要锁定确切版本时,用
package-lock.json或npm ci。 - 官方文档曾建议用
*以确保 CI 始终拿到最新版,但这在生产项目中不够稳妥,不推荐。
CommonJS 引入方式
Node.js 默认的 CommonJS 模块系统:
const chai = require('chai');
const expect = chai.expect;
const assert = chai.assert;
// 只引入需要的接口
const { expect, should } = require('chai');
ESM / ES Modules 引入方式
Node.js 12+ 原生支持 ESM。在 package.json 中设置 "type": "module" 后:
import chai, { expect, assert } from 'chai';
// 或者命名导入
import { expect } from 'chai';
// 如果需要 should 风格,要显式调用初始化
import 'chai/register-should';
也可以用动态 import():
const { expect } = await import('chai');
验证安装成功
创建一个简单的验证脚本 verify-chai.js:
const { expect } = require('chai');
expect(1 + 1).to.equal(2);
expect('hello').to.be.a('string');
console.log('✓ Chai 安装正常');
运行:
node verify-chai.js
没有抛错就说明一切正常。故意写错一个断言试试错误信息:
expect(1 + 1).to.equal(3);
// AssertionError: expected 2 to equal 3
与 TypeScript 配合
Chai v4+ 自带了类型声明,无需额外安装 @types/chai:
import { expect } from 'chai';
describe('Array', () => {
it('should pass', () => {
expect([1, 2, 3]).to.have.lengthOf(3);
});
});