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 相关文章推荐
通过Mootools 1.2来操纵HTML DOM元素
Sep 15 Javascript
jquery select下拉框操作的一些说明
Apr 02 Javascript
jquery进行数组遍历如何跳出当前的each循环
Jun 05 Javascript
jquery实现submit提交表单
Feb 03 Javascript
了解Javascript的模块化开发
Mar 02 Javascript
js判断浏览器类型及设备(移动页面开发)
Jul 30 Javascript
AngularJS使用ng-app自动加载bootstrap框架问题分析
Jan 04 Javascript
微信小程序 地图map实例详解
Jun 07 Javascript
详解如何在vue中使用sass
Jun 21 Javascript
VUE2.0+ElementUI2.0表格el-table循环动态列渲染的写法详解
Nov 30 Javascript
详解Vue用cmd创建项目
Feb 12 Javascript
微信小程序如何通过用户授权获取手机号(getPhoneNumber)
Jan 21 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
JavaScript的类型简单说明
2010/09/03 Javascript
简单几行JS Code实现IE邮件转发新浪微博
2013/07/03 Javascript
php跨域调用json的例子
2013/11/13 Javascript
JS实现字体选色板实例代码
2013/11/20 Javascript
js对象基础实例分析
2015/01/13 Javascript
初步认识JavaScript函数库jQuery
2015/06/18 Javascript
Bootstrap中文本框的宽度变窄并且加入一副验证码图片的实现方法
2016/06/23 Javascript
JavaScript实现解析INI文件内容的方法
2016/11/17 Javascript
JS实现微信弹出搜索框 多条件查询功能
2016/12/13 Javascript
从零学习node.js之文件操作(三)
2017/02/21 Javascript
微信小程序 swiper组件构建轮播图的实例
2017/09/20 Javascript
vue-router 起步步骤详解
2019/03/26 Javascript
详解Vue中使用Axios拦截器
2019/04/22 Javascript
百度小程序自定义通用toast组件
2019/07/17 Javascript
Vue通过for循环随机生成不同的颜色或随机数的实例
2019/11/09 Javascript
详解基于element的区间选择组件校验(交易金额)
2021/01/07 Javascript
js实现有趣的倒计时效果
2021/01/19 Javascript
[02:56]《DAC最前线》之国外战队抵达上海备战亚洲邀请赛
2015/01/28 DOTA
[01:03:00]DOTA2上海特级锦标赛A组败者赛 EHOME VS CDEC第一局
2016/02/25 DOTA
天翼开放平台免费短信验证码接口使用实例
2013/12/18 Python
Python功能键的读取方法
2015/05/28 Python
Python基于高斯消元法计算线性方程组示例
2018/01/17 Python
Python中enumerate()函数编写更Pythonic的循环
2018/03/06 Python
Python解决两个整数相除只得到整数部分的实例
2018/11/10 Python
利用python求积分的实例
2019/07/03 Python
python检测服务器端口代码实例
2019/08/31 Python
python KNN算法实现鸢尾花数据集分类
2019/10/24 Python
迪卡侬英国官网:Decathlon英国
2017/04/08 全球购物
英国时尚高尔夫服装购物网站:Trendy Golf
2020/01/10 全球购物
俄罗斯奢侈品牌衣服、鞋子和配饰的在线商店:INTERMODA
2020/07/17 全球购物
NULL是什么,它是怎么定义的
2015/05/09 面试题
《高尔基和他的儿子》教学反思
2014/04/09 职场文书
医院深入开展党的群众路线教育实践活动实施方案
2014/08/27 职场文书
领导干部查摆“四风”问题自我剖析材料思想汇报
2014/10/05 职场文书
教师求职信怎么写
2015/03/20 职场文书
外出学习心得体会范文
2016/01/18 职场文书