4,JavaScript-Web开发-mocha(测试)
测试驱动开发 TDD
Test-Driven Development
测试用例放在测试模块里,完成单元测试。
以测试为驱动的开发模式:确保一个程序模块的行为符合设计的测试用例。
mocha:JavaScript 的一种单元测试框架,特点:
- 测试简单JavaScript函数 && 异步代码
- 自动运行所有测试 || 只运行特定测试
- 支持before,after,beforeEach和afterEach来编写初始代码
mocha test 工程结构
hello-test\
|
+- .vscode/
| |
| +- lanuch.json
|
+- hello.js <-- 待测试模块
|
+- test/ <-- 存放所有test
| |
| +- hello-test.js <-- 测试模块
|
+- package.json <-- 项目描述文件
|
+- node_modules/ <-- npm安装的所有依赖包
安装mocha
项目描述文件添加 "devDependencies":{"mocha":"3.0.2"}
- npm install 通过项目描述文件添加依赖包
- npm install -g mocha 不推荐,尽量不要安装全局模块(会影响所有的Node.js工程)
const assert = require('assert');
const sum = require('../hello');
describe('#hello.js', () => {
describe('#sum()', () => {
it('sum() should return 0', () => {
assert.strictEqual(sum(), 0);
});
it('sum(1) should return 1', () => {
assert.strictEqual(sum(1), 1);
});
it('sum(1, 2) should return 3', () => {
assert.strictEqual(sum(1, 2), 3);
});
it('sum(1, 2, 3) should return 6', () => {
assert.strictEqual(sum(1, 2, 3), 6);
});
});
});
describe可任意嵌套,看成一组测试
it("name",function(){...} 代表一个测试
运行测试(必须是test文件夹?!)
- node node_module/../mocha 寻找test文件夹下的模块测试
package.json添加npm命令"scripts":{"test":"mocha"}- 工程目录下执行
npm test
- 创建配置文件
.vscode/launch.json- 添加Test配置选项
-
"name": "test", "type": "node", "request": "launch", "program": "${workspaceRoot}/node_modules/mocha/bin/mocha", "env": { "NODE_ENV":"test" } }
before 和 after
测试前初始化资源 测试后释放资源
- before
- after
- beforeEach
- afterEach
每一组test执行前后会分别执行before()和after()
每一个testh执行前后会分别执行beforeEach()和afterEach()

浙公网安备 33010602011771号