学习mocha
- 大概结构
/**
* @desc describe 是全局的入口函数 整个函数使用回调嵌套写法
*
* 1.done 在非it函数调用时 若一个使用了 done 则全部函数都要使用 否则无法进入下一步 (迭代器规则),在it中形参声明了 done 就必须要调用 同理
*
* 2. 像before beforeEach after afterEach 这类周期函数 有区别 ; before 只在启动时调用一次 each 会在每次测试执行前后调用
*
* 3. 延时与异步 这类函数需要使用done否则不生效
*
* 4.不要使用箭头函数,会有作用域穿透风险
*
*
*/
describe('测试淘宝类', function () {
console.time('全局的延时')
this.timeout(200) // A very long environment setup. 设置超时时间的 如果超过这个数字就测试i失败了
console.timeEnd('全局的延时')
before(function (done) {
// 这个在当前作用域只会执行一次,与each有区别
done()
})
beforeEach(function (done) {
// 这个是每次测试都会执行一次 ,有遇到 异步代码请调用传入的形参 done()
console.log("先执行一次时间间隔函数");
Taobao.timeCheck.do()
this.timeout(3000); // A very long environment setup.
setTimeout(done, 2500);
})
it('should 生效间隔检查函数', (done) => {
let flag = Taobao.timeCheck.do(2000)
assert.equal(flag, true, '校验限制是2秒 因为倒计时五秒 应该为true')
done()
});
it('测试淘宝请求时间间隔检查函数', (done) => {
assert.equal(Taobao.timeCheck.do(), false, '默认间隔是120秒 第二次执行 因为不够间隔时间应该返回false')
});
});