当前位置: 首页 > article >正文

钩子函数-hook

钩子函数-hook

hook 的作用

利用钩子函数可以在所有测试用例执行前做一些预置操作(如:准被测试数据、测试环境)

或者在测试结束后做一些后置操作(如:清理测试数据)

  • 钩子函数在其它框架中也有,也称为生命周期函数
Mocha 提供的 Hook 函数
  • before()
  • beforeEach()
  • afterEach()
  • after()
before()
  • 该测试套件下,所有测试用例的统一前置操作
  • 它在一个 describe() 或 context() 内只会执行一次,在所有 it() 之执行
after()
  • 该测试套件下,所有测试用例的统一后置操作
  • 它在一个 describe() 或 context() 内只会执行一次,在所有 it() 之执行
beforeEach()
  • 该测试套件下,每个测试用例的前置操作
  • 一个 describe() 或 context() 内有多少个测试用例 it() ,就会执行几次 beforeEach()
afterEach()
  • 该测试套件下,每个测试用例的后置操作
  • 一个 describe() 或 context() 内有多少个测试用例 it() ,就会执行几次afterEach()
测试
describe('hook test',()=>{
    before(()=>{
        cy.log('执行before方法');
    })

    beforeEach(()=>{
        cy.log('执行before each');
    })

    it('test1',()=>{
        cy.log('测试用例1');
    })

    it('test2',()=>{
        cy.log('测试用例2')
    })

    afterEach(()=>{
        cy.log('执行after each');
    })

    after(()=>{
        cy.log('执行after');
    })

    context('subsuite',()=>{
        before(()=>{
            cy.log('执行subbefore方法');
        })
    
        beforeEach(()=>{
            cy.log('执行sub before each');
        })
    
        it('test3',()=>{
            cy.log('测试用例3');
        })
    
        it('test4',()=>{
            cy.log('测试用例4')
        })
    
        afterEach(()=>{
            cy.log('执行subafter each');
        })
    
        after(()=>{
            cy.log('执行subafter');
        })
    })
})

运行结果

在这里插入图片描述

在这里插入图片描述

若包含多级测试套件,那么父级套件、祖父级套件声明的 hook 函数会作用于所有子级套件的测试用例,孙子级套件的测试用例…以此类推


http://www.kler.cn/news/136591.html

相关文章:

  • 开源vGPU方案 HAMi实现细粒度GPU切分——筑梦之路
  • 同世界,共北斗|遨游通讯亮相第三届北斗规模应用国际峰会!
  • K最近邻算法
  • vue富文本使用editor
  • ASP.NET MVC-font awesome-localhost可用IIS不可用
  • JS | 如何使用 JavaScript 实现图片懒加载的淡入效果?
  • 大势浏览器DasViewer里面的查询和选择功能,如何实现与矢量数据关联?
  • 发必收藏的好用API接口,可领取免费次数
  • Excel数据可视化—波士顿矩阵图【四象限图】
  • 掌握Java核心知识,轻松应对面试挑战!
  • python的socket模块以及通信相关学习笔记
  • c语言遇到的常见问题及解决方案
  • Leetcode—5.最长回文子串【中等】
  • 印刷企业实施MES管理系统需要哪些硬件设施
  • 第八部分:JSP
  • gitlab环境准备
  • Windows本地搭建rtmp推流服务
  • ROS参数服务器(Param):通信模型、Hello World与拓展
  • ros2工作空间
  • CentOS7安装部署Kafka with KRaft
  • react重要知识点(面经)
  • 图像分割方法
  • Redis常用的八种场景
  • Java Enumeration 接口
  • Spark---介绍及安装
  • 【LeetCode:2216. 美化数组的最少删除数 | 贪心】