mocha测试框架笔记

Last updated on 21 hours ago

介绍

发音摩卡,是 js 测试框架之一,可以为 js 应用添加测试用例

安装

1
2
npm install --global mocha
mkdir test

测试脚本编写

1
2
3
4
5
6
// add.js
function add(x, y) {
return x + y;
}

module.exports = add;

待测试的 js 为add.js,为了规范,其测试脚本应为add.test.js,也就是加上.test.js后缀

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// add.test.js
// 导入需要测试的js
var add = require('./add.js');
// 导入断言库,用于比较两个值是否相等

// describe 一个测试套件,可以有多个
// 参数1为套件名称,参数2为函数
describe('加法函数的测试', function() {
// it 一个测试用例,可以有多个
it("1 + 1 应该 = 2", function() {
// 断言:判断实际结果与预期结果是否一致
// 不通过将抛出错误
expect(add(1,1),).to.be.equal(2);
})
})

Mocha 运行测试

  • 运行单个测试文件

    1
    mocha add.test.js
  • 运行多个测试文件

    1
    mocha file1 file2 file3
  • 运行 test 目录下所有测试文件(不包括子目录)

    1
    mocha

    mocha 默认去 test 目录中执行测试脚本,如果 test 中有其他子目录,子目录里的脚本不会被执行

  • 运行 test 目录下所有测试文件(包括子目录)

    1
    mocha --recursive

    加上--recursive即可

命令行参数

  • –help -h:
    查看所有命令行参数

  • –reporter -R:
    用于指定测试报告的格式,默认为spec格式

钩子函数

mocha 提供了四个钩子函数before()after()beforeEach()afterEach()

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
before(function () {
// 在本区块的所有测试用例之前执行
});

after(function () {
// 在本区块的所有测试用例之后执行
});

beforeEach(function () {
// 在本区块的每个测试用例之前执行
});

afterEach(function () {
// 在本区块的每个测试用例之后执行
});