安装 Mocha
全局安装:
使用 npm(Node Package Manager)全局安装 Mocha。
npm install -g mocha
项目安装:
在项目中安装 Mocha 作为开发依赖。
npm install --save-dev mocha
初始化测试配置
测试文件:
创建测试文件,通常放在
test
目录中。测试脚本:
在
package.json
文件中的"scripts"
对象里添加一个测试脚本。"scripts": { "test": "mocha"}
编写测试
导入依赖:
在测试文件中导入需要测试的模块。
编写测试用例:
使用
describe
函数定义测试用例组。使用
it
或specify
函数定义具体的测试。断言库:
使用断言库(如 Chai)来验证测试结果。
异步测试:
对于异步代码,使用
done
回调或返回 Promise。
运行测试
命令行:
在命令行中运行
npm test
来执行所有测试。文件模式:
运行特定测试文件:
mocha test/some-test.js
测试模式:
运行特定测试用例:`mocha --grep "test name"
高级特性
UI 报告器:
使用不同的报告器(如 spec, nyan, dot)来改变测试输出的样式。
测试覆盖率:
集成 Istanbul 或 Blanket 等工具来生成测试覆盖率报告。
测试钩子:
使用
before
,after
,beforeEach
,afterEach
钩子来准备测试环境。自定义报告器:
创建自定义报告器以满足特定的输出需求。
并行测试:
使用
mocha-parallel
或 Mocha 的-parallel
选项来并行运行测试。集成到 CI:
将 Mocha 测试集成到持续集成(CI)流程中。
示例代码
// 引入被测试的模块和断言库const myModule = require('../src/myModule');const assert = require('assert');describe('My Module', function() { it('should perform an action', function() { const result = myModule.doSomething(); assert.strictEqual(result, expectedValue); }); it('should handle async operations', function(done) { myModule.doSomethingAsync((err, result) => { if (err) return done(err); assert.strictEqual(result, expectedValue); done(); }); });});