关于我半路又学起了单元测试这件事-mocha

学习mocha

  1. 大概结构
/**
* @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')
});
});
posted @   云冬  阅读(3)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示