mocha的时序规则讲解


Posted in Javascript onFebruary 16, 2019

前言

对于新手而言,mocha的时序就像谜一般,许多奇怪的测试样例的失败都是由于对时序不清楚。下面我就把我在测试工作中总结的时序规则部分与大家共享。

describe里地时序

simple case

describe('work',function(){
  it('1',func(){});
  it('2',func(){});
  ....
});
//按1,2,3...顺序执行

规则1:describe里地it的非异步部分按它们定义的顺序执行,它们所触发的回调的注册顺序也遵从it的注册顺序

hooks

  • before
  • after
  • beforeEach
  • afterEach

这是比较常用的hooks,我们可以采用hooks改变在describe中的时序,但是记住hooks是在describe的基础上的,与describe联系在一起的。hooks对子describe是不起作用的。

describe间的时序

非describe部分

规则2:不被describe包裹的部分执行顺序的优先级最高

{block1}
describe('1',function(){
  ...
});
{block2}
describe('2',func(){..});
//执行顺序block1,block2,describe1,describe2

并列的describe

规则3:同一层次的describe执行顺序遵从它们的定义顺序

嵌套的describe

describe('parent',func(){
  it('1',func(){..});
  describe('child1',func(){...});
  it('2',func(){...});
  describe('child2',func(){..});
});
//执行顺序为it1,it2,child1,child2

规则4:外层describe的所有it执行优先级高于嵌套的describe

最后我们把这四条规则总结一下

  • describe里地it的非异步部分按它们定义的顺序执行,它们所触发的回调的注册顺序也遵从it的注册顺序
  • 不被describe包裹的部分执行顺序的优先级最高
  • 同一层次的describe执行顺序遵从它们的定义顺序
  • 外层describe的所有it执行优先级高于嵌套的describe

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。如果你想了解更多相关内容请查看下面相关链接

Javascript 相关文章推荐
强制设为首页代码
Jun 19 Javascript
网页设计常用的一些技巧
Dec 22 Javascript
javascript 表单规则集合对象
Jul 21 Javascript
自动设置iframe大小的jQuery代码
Sep 11 Javascript
JavaScript/Js脚本处理html元素的自定义属性解析(亲测兼容Firefox与IE)
Nov 25 Javascript
深入理解JavaScript系列(33):设计模式之策略模式详解
Mar 03 Javascript
JS实现的左侧竖向滑动菜单效果代码
Oct 19 Javascript
json传值以及ajax接收详解
May 24 Javascript
vue的一个分页组件的示例代码
Dec 25 Javascript
微信小程序实现弹出层效果
May 26 Javascript
Auto.JS实现抖音刷宝等刷视频app,自动点赞,自动滑屏,自动切换视频功能
May 08 Javascript
解决vue与node模版引擎的渲染标记{{}}(双花括号)冲突问题
Sep 11 Javascript
jQuery实现ajax的嵌套请求案例分析
Feb 16 #jQuery
解决微信小程序中转换时间格式IOS不兼容的问题
Feb 15 #Javascript
详解Element 指令clickoutside源码分析
Feb 15 #Javascript
Node.js原生api搭建web服务器的方法步骤
Feb 15 #Javascript
jQuery实现简单的Ajax调用功能示例
Feb 15 #jQuery
vue与bootstrap实现简单用户信息添加删除功能
Feb 15 #Javascript
微信小程序实现工作时间段选择
Feb 15 #Javascript
You might like
PHP parse_url 一个好用的函数
2009/10/03 PHP
几种有用的变型 PHP中循环语句的用法介绍
2012/01/30 PHP
PHP保留两位小数并且四舍五入及不四舍五入的方法
2013/09/22 PHP
PHP异常处理Exception类
2015/12/11 PHP
中高级PHP程序员应该掌握哪些技术?
2016/09/23 PHP
Zend Framework入门应用实例详解
2016/12/11 PHP
XHTML下,JS浮动代码失效的问题
2009/11/12 Javascript
javascript 模拟JQuery的Ready方法实现并出现的问题
2009/12/06 Javascript
json格式的时间显示为正常年月日的方法
2013/09/08 Javascript
JS实现的一个简单的Autocomplete自动完成例子
2014/04/16 Javascript
技术男用来对妹子表白的百度首页
2014/07/23 Javascript
javascript中setTimeout和setInterval的unref()和ref()用法示例
2014/11/26 Javascript
Sea.JS知识总结
2016/05/05 Javascript
js判断主流浏览器类型和版本号的简单实现代码
2016/05/26 Javascript
Js+Ajax,Get和Post在使用上的区别小结
2016/06/08 Javascript
JavaScript仿聊天室聊天记录
2016/12/27 Javascript
通过修改360抢票的刷新频率和突破8车次限制实现方法
2017/01/04 Javascript
VueJS 集成 Medium Editor的示例代码 (自定义编辑器按钮)
2017/08/24 Javascript
Redux 和 Mobx的选择问题:让你不再困惑!
2017/09/18 Javascript
js定时器+简单的动画效果实例
2017/11/10 Javascript
JavaScript比较同一天的时间大小实例代码
2018/02/09 Javascript
在vue中使用jointjs的方法
2018/03/24 Javascript
js利用递归与promise 按顺序请求数据的方法
2019/08/30 Javascript
Vue仿Bibibili首页的问题
2021/01/21 Vue.js
利用Python代码实现数据可视化的5种方法详解
2018/03/25 Python
Python操作列表常用方法实例小结【创建、遍历、统计、切片等】
2019/10/25 Python
python求质数列表的例子
2019/11/24 Python
python进程池实现的多进程文件夹copy器完整示例
2019/11/27 Python
pycharm Tab键设置成4个空格的操作
2021/02/26 Python
深入浅析css3 中display box使用方法
2015/11/25 HTML / CSS
html5自带表单验证体验优化及提示气泡修改功能
2017/09/12 HTML / CSS
应用艺术专业个人的自我评价
2014/01/03 职场文书
孝敬父母的活动方案
2014/08/28 职场文书
会计学习心得体会
2014/09/09 职场文书
工程催款通知书
2015/04/17 职场文书
导游词之京东大峡谷旅游区
2019/10/29 职场文书