Mocha(未完待续.)
- 定义
- 安装
- 起步
-
Describe()
和it()
- 多次使用
done
- ASSERTION(断言)和断言库的使用
- 异步代码
- Promise
- Async和Await
- 同步代码
- 箭函数
定义
Mocha是一个能够运行在node和浏览器的JavaScript测试框架。
安装
$ npm install --global mocha//全局安装
$ npm install --save-dev mocha //局部依赖包
安装
起步
在项目的package.json设置一个测试脚本
"scripts": {
"test": "mocha"
}
然后在终端中运行 npm test 便可以进行测试
Describe()和it()
describe
块称为“测试套件”,表示一组相关的测试。它是一个函数,第一个参数多是测试套件的名称,后面的参数是要测试的函数。
it
块称为“测试用例”,表示一个单独的测试,是测试的最小单位。它是一个函数,第一个参数多是测试套件的名称,后面的参数是实际执行的函数。
多次使用done()
在基于回调的异步测试,多次使用done()会报错。
it('double done', function (done){
//使用两次done()
setTimeout(done);
setImmediate(done);
});
ASSERTION(断言)和断言库的使用
ASYNCHRONOUS CODE(异步代码)
测试异步代码,需要在测试完成时调用回调函数。通过添加一个回调函数(通常命名为done)给it(),mocha就能知道测试完这个函数之后就能完成测试。这个回调函数可以接受error或虚值。
describe('异步',function(){
it('代码测试',function(done){
var x=true
var test=function(){
x=false
console.log(x)
done()
}
setTimeout(test,1000)
})
})
Promise
除了使用done()回调函数,可以返回一个promise对象。当使用的APIs返回的是一个promise对象会更高效。
describe('Promise', function()
{
it('test', function(){
const p = new Promise(function (resolve, reject)
{
resolve('ok');
}
).
then(result => result);
})
}
)
在Mocha v3.0.0
和更新版本,同时返回一个promise对象和done回调函数会导致异常。
describe('同时返回done和promise对象',function(){
it('test', function(done) {
return new Promise(function(resolve) {
resolve('ok');
}).then(done);
})
})
Async和await
如果js环境支持Async和await,可以使用该方法
describe('使用async/await',function(){
it('test',async function(){
const p = await {
async function(){
await 100
}
}
p
})
})
SYNCHRONOUS CODE(同步代码)
当在使用同步代码时,去掉回调函数 Mocha会自动一条一条地执行语句。
describe('同步代码',function(){
describe('用正则表达式测试十六进制值',function(){
describe('测试#b8b8b8',function(){
it('test',function(){
let pattern=/^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/
let s=pattern.test("#b8b8b8")
let a=new Array([1,2,3]);
let b=a.indexOf(0);
})
})
})
})
ARROW FUNCTIONS(箭头函数)
不建议用箭头函数,因为箭头函数绑定了this,不能访问到Mocha的上下文
网友评论