Mocha
Mocha是现在最流行的 Javascript 测试框架之一。在 Node 和浏览器环境都可以使用
使用
npm install mocha --global
测试脚本的写法
所谓"测试脚本",就是用来测试源码的脚本。
// add.js
function add(x, y) {
return x + y;
}
module.exports = add;
// add.test.js
// add.test.js
var add = require('./add.js');
var expect = require('chai').expect;
describe('加法函数的测试', function() {
it('1 加 1 应该等于 2', function() {
expect(add(1, 1)).to.be.equal(2);
});
});
- 通常,测试脚本与所要测试的源码脚本同名,但是后缀名为
.test.js
(表示测试)或者.spec.js
(表示规格)
mocha 基本用法
- Mocha默认运行test子目录里面的测试脚本。所以,一般都会把测试脚本放在
test
目录里面,然后执行mocha就不需要参数了 - Mocha默认只执行test子目录下面第一层的测试用例,不会执行更下层的用例。为了改变这种行为,就必须加上
--recursive
参数 --watch
参数用来监视指定的测试脚本。只要测试脚本有变化,就会自动运行Mocha。
异步测试
- 测试执行完毕后,调用done函数
- 返回 Promise
- ASYNC AWAIT
上下文
向Mocha传递箭头函数是不好的,由于this的词法作用域的问题,箭头函数是不能够访问mocha的上下文的。
hooks
before()
,after()
,beforeEach()
和afterEach()
。
超时测试
mocha 默认超时时间是2000 ms,如果到时没有得到结果,就报错。对于涉及异步操作的测试用例,这个时间往往是不够的,需要用-t或–timeout参数指定超时门槛。