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 相关文章推荐
删除重复数据的算法
Nov 23 Javascript
避免 showModalDialog 弹出新窗体的原因分析
May 31 Javascript
复制Input内容的js代码_支持所有浏览器,修正了Firefox3.5以上的问题
Jun 21 Javascript
sails框架的学习指南
Dec 22 Javascript
基于MVC4+EasyUI的Web开发框架形成之旅之界面控件的使用
Dec 16 Javascript
Javascript日期格式化format函数的使用方法
Aug 30 Javascript
JavaScript Ajax实现异步通信
Dec 14 Javascript
JS实现图片高斯模糊切换效果的焦点图实例
Jan 21 Javascript
Angular4项目中添加i18n国际化插件ngx-translate的步骤详解
Jul 02 Javascript
bootstrap3-dialog-master模态框使用详解
Aug 22 Javascript
Angular 4.0学习教程之架构详解
Sep 12 Javascript
关于在LayUI中使用AJAX提交巨坑记录
Oct 25 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
手把手教你使用DedeCms的采集的图文教程
2007/03/11 PHP
php发送post请求函数分享
2014/03/06 PHP
zf框架的校验器使用使用示例(自定义校验器和校验器链)
2014/03/13 PHP
PHP基于CURL进行POST数据上传实例
2014/11/10 PHP
php获取客户端IP及URL的方法示例
2017/02/03 PHP
php使用fputcsv实现大数据的导出操作详解
2020/02/27 PHP
javascript this用法小结
2008/12/19 Javascript
autoPlay 基于jquery的图片自动播放效果
2011/12/07 Javascript
放弃用你的InnerHTML来输出HTML吧 jQuery Tmpl不详细讲解
2013/04/20 Javascript
jQuery的css()方法用法实例
2014/12/24 Javascript
jQuery实现点击小图片淡入淡出显示大图片特效
2015/09/09 Javascript
微信小程序左滑删除效果的实现代码
2017/02/20 Javascript
js 将canvas生成图片保存,或直接保存一张图片的实现方法
2018/01/02 Javascript
vue1.0和vue2.0的watch监听事件写法详解
2018/09/11 Javascript
详谈js的变量提升以及使用方法
2018/10/06 Javascript
了解javascript中let和var及const关键字的区别
2019/05/24 Javascript
[01:32]DOTA2上海特锦赛现场采访:最想COS的英雄
2016/03/25 DOTA
基于Python的接口测试框架实例
2016/11/04 Python
python实现读取并显示图片的两种方法
2017/01/13 Python
django foreignkey外键使用的例子 相当于left join
2019/08/06 Python
浅谈ROC曲线的最佳阈值如何选取
2020/02/28 Python
基于python实现可视化生成二维码工具
2020/07/08 Python
美国知名的时尚购物网站:Anthropologie
2016/12/22 全球购物
吉力贝官方网站:Jelly Belly
2019/03/11 全球购物
优质有机椰子产品:Dr. Goerg
2019/09/24 全球购物
软件测试有哪些?什么是配置项?
2012/02/12 面试题
师德个人剖析材料
2014/02/02 职场文书
同事吵架检讨书
2014/02/05 职场文书
致垒球运动员加油稿
2014/02/16 职场文书
高一新生军训感言
2014/03/02 职场文书
我的老师教学反思
2014/05/01 职场文书
2014年基建工作总结
2014/12/12 职场文书
体检通知范文
2015/04/21 职场文书
大学生就业指导课心得体会
2016/01/15 职场文书
教师师德承诺书2016
2016/03/25 职场文书
Ruby GDBM操作简介及数据存储原理
2022/04/19 Ruby