关于我半路又学起了单元测试这件事-mocha
学习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') }); });
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!