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 26 Javascript
jquery $.ajax入门应用一
Nov 19 Javascript
JavaScript 编写匿名函数的几种方法
Feb 21 Javascript
基于JQuery的类似新浪微博展示信息效果的代码
Jul 23 Javascript
jQuery性能优化的38个建议
Mar 04 Javascript
Javascript字符串浏览器兼容问题分析
Dec 01 Javascript
浅谈JSON.parse()和JSON.stringify()
Jul 14 Javascript
详解Bootstrap创建表单的三种格式(一)
Jan 04 Javascript
微信JS-SDK选取手机照片上传功能
Apr 21 Javascript
JavaScript贪吃蛇小组件实例代码
Aug 20 Javascript
javaScript中indexOf用法技巧
Nov 26 Javascript
JavaScript中window和document用法详解
Jul 28 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 similar_text()函数的定义和用法
2016/05/12 PHP
JavaScript 的方法重载效果
2009/08/07 Javascript
jQuery的一些特性和用法整理小结
2010/01/13 Javascript
一个JQuery写的点击上下滚动的小例子
2011/08/27 Javascript
js模拟点击以提交表单为例兼容主流浏览器
2013/11/29 Javascript
js中继承的几种用法总结(apply,call,prototype)
2013/12/26 Javascript
JS高级调试技巧:捕获和分析 JavaScript Error详解
2014/03/16 Javascript
js实现的复制兼容chrome和IE
2014/04/03 Javascript
如何防止回车(enter)键提交表单
2014/05/11 Javascript
聊一聊JavaScript作用域和作用域链
2016/05/03 Javascript
js获取当前年月日-YYYYmmDD格式的实现代码
2016/06/01 Javascript
基于JS实现发送短信验证码后的倒计时功能(无视页面刷新,页面关闭不进行倒计时功能)
2016/09/02 Javascript
JavaScript常见的五种数组去重的方式
2016/12/15 Javascript
jQuery实现分页功能(含ajax请求、后台数据、附完整demo)
2017/04/03 jQuery
element ui里dialog关闭后清除验证条件方法
2018/02/26 Javascript
Node.js中DNS模块学习总结
2018/02/28 Javascript
快速解决vue-cli在ie9+中无效的问题
2018/09/04 Javascript
JS中min函数实例讲解
2019/02/18 Javascript
怎样在vue项目下添加ESLint的方法
2019/05/16 Javascript
javascript数组的定义及操作实例
2019/11/10 Javascript
js实现带有动画的返回顶部
2020/08/09 Javascript
python进程管理工具supervisor的安装与使用教程
2017/09/05 Python
浅谈配置OpenCV3 + Python3的简易方法(macOS)
2018/04/02 Python
PyQt5中QSpinBox计数器的实现
2021/01/18 Python
泰国演唱会订票网站:StubHub泰国
2018/02/26 全球购物
LN-CC美国:伦敦时尚生活的缩影
2019/02/19 全球购物
遗体告别仪式主持词
2014/03/20 职场文书
学习演讲稿范文
2014/05/10 职场文书
老公写给老婆的检讨书
2015/05/06 职场文书
工伤认定行政答辩状
2015/05/22 职场文书
2015年教学副校长工作总结
2015/07/22 职场文书
停车场管理制度范本
2015/08/05 职场文书
话题作文之成长
2019/12/09 职场文书
go语言map与string的相互转换的实现
2021/04/07 Golang
在K8s上部署Redis集群的方法步骤
2021/04/27 Redis
学会用Python实现滑雪小游戏,再也不用去北海道啦
2021/05/20 Python