六. only()、skip()函数
describe块和it块都允许调用 only() 和 skip() 方法。
only() 方法表示在当前的父describe块下,只执行该单元的测试。
skip() 方法表示在当前的父describe块下,跳过不执行该单元的测试。
当在一个describe块下,同时存在 only() 和 skip() 方法,则只执行 .only() 方法。
describe('Array', function() {
describe.only('父describe块下只执行该测试单元', () => {
it.skip('跳过的测试单元', () => { //... });
});
describe('不执行', () => { //... });
});
七. mocha 常用命令参数
–recursive 遍历子目录下的全部文件
Mocha默认运行/test子目录里面的测试脚本。
Mocha默认只执行/test子目录下第一层的测试用例。
所以,应加上–recursive参数,使全部子目录下的测试用例都能被执行。
mocha --recursive
-u tdd 执行TDD模式
mocha默认的模式是BDD,要想执行TDD的test时需要加上参数,如:
mocha -u tdd test.js
–watch, -w 监听脚本变化
--watch 参数用来监视指定的测试脚本。当脚本发生变化,就会自动运行mocha。
mocha --watch
–bail, -b
只要有一个测试用例没有通过,就会停止执行后面的测试用例。
-timeout, -t 指定超时门槛
Mocha默认每个测试用例最多执行2000毫秒。如果2000毫秒后还没有执行完成,则报错。-t可执行超时门槛。
mocha -t 5000 test.js
使用nobe通配符适配文件
mocha spec/{my,awesome}.js
mocha test/unit/*.js
mocha 'test/**/*.@(js|jsx)'
八. chai库
我个人比较喜欢assert风格。具体可查看文档: http://chaijs.com/api/assert/
其实最常用的API也就那几个:
.equal(actual, expected, [message])
.deepeEqual(actual, expected, [message])
.isOk(object, [message])
.isTrue(value, [message])
.include(haystack, needle, [message])
… …