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 相关文章推荐
关于this和self的使用说明
Aug 01 Javascript
原生javascript获取元素样式属性值的方法
Dec 25 Javascript
jquery实现图片左右切换的方法
May 07 Javascript
简介JavaScript中的italics()方法的使用
Jun 08 Javascript
jQuery soColorPacker 网页拾色器
Jun 22 Javascript
原生js实现键盘控制div移动且解决停顿问题
Dec 05 Javascript
Javascript获取某个月的天数
May 30 Javascript
Vue引入sass并配置全局变量的方法
Jun 27 Javascript
浅谈laytpl 模板空值显示null的解决方法及简单的js表达式
Sep 19 Javascript
JavaScript计算正方形面积
Nov 26 Javascript
vue利用全局导航守卫作登录后跳转到未登录前指定页面的实例代码
May 19 Javascript
详解vite2.0配置学习(typescript版本)
Feb 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
非洲第一个咖啡超凡杯大赛承办国—卢旺达的咖啡怎么样
2021/03/03 咖啡文化
php学习 字符串课件
2008/06/15 PHP
PHP开发中常见的安全问题详解和解决方法(如Sql注入、CSRF、Xss、CC等)
2014/04/21 PHP
Codeigniter框架实现获取分页数据和总条数的方法
2014/12/05 PHP
php版微信公众号自定义分享内容实现方法
2016/09/22 PHP
javascript实现锁定网页、密码解锁效果(类似系统屏幕保护效果)
2014/08/15 Javascript
node+express+jade制作简单网站指南
2014/11/26 Javascript
jquery实现页面百叶窗走马灯式翻滚显示效果的方法
2015/03/12 Javascript
jQuery子窗体取得父窗体元素的方法
2015/05/11 Javascript
JS控制伪元素的方法汇总
2016/04/06 Javascript
JavaScript中split与join函数的进阶使用技巧
2016/05/03 Javascript
多种方式实现js图片预览
2016/12/12 Javascript
利用jquery禁止外层滚动条的滚动
2017/01/05 Javascript
elemetUi 组件--el-upload实现上传Excel文件的实例
2017/10/27 Javascript
浅谈vuex 闲置状态重置方案
2018/01/04 Javascript
node.js+express+mySQL+ejs+bootstrop实现网站登录注册功能
2018/01/12 Javascript
详解js 创建对象的几种方法
2019/03/08 Javascript
javascript数据类型中的一些小知识点(推荐)
2019/04/18 Javascript
Vue配置marked链接添加target="_blank"的方法
2019/07/19 Javascript
ElementUI之Message功能拓展详解
2019/10/18 Javascript
写给新手同学的vuex快速上手指北小结
2020/04/14 Javascript
JS数组reduce()方法原理及使用技巧解析
2020/07/14 Javascript
JS变量提升及函数提升实例解析
2020/09/03 Javascript
python 输出一个两行字符的变量
2009/02/05 Python
实例探究Python以并发方式编写高性能端口扫描器的方法
2016/06/14 Python
Python字符串处理实现单词反转
2017/06/14 Python
python3 模拟登录v2ex实例讲解
2017/07/13 Python
对python pandas 画移动平均线的方法详解
2018/11/28 Python
乐高瑞士官方商店:LEGO CH
2020/08/16 全球购物
波兰办公用品和学校用品在线商店:Dlabiura24.pl
2020/11/18 全球购物
商务邀请函范文
2014/01/14 职场文书
汽车促销活动方案
2014/03/31 职场文书
大专生自荐书范文
2014/06/22 职场文书
风雨哈佛路观后感
2015/06/03 职场文书
2016年秋季新学期致辞
2015/07/30 职场文书
Django 如何实现文件上传下载
2021/04/08 Python