Cyprerss的钩子函数

简介: 大家好,我是阿萨。昨天学习了如何使用describe,context,specify 和it 去组织自动化测试用例。大家也学会了如何去写好一个test suites了。有同学就问了,之前用selenium 或者其他测试框架的时候,都有setup 和teardown 等函数。cypress 咋没见这2个函数。哪如何实现每个测试的suite 之前都执行某个代码逻辑或者是每个测试用例之前都需要执行代码?

今天我们就来学习下cypress的 钩子函数。


Cypress 和Mocha 一样提供四个钩子函数:


●before() ----当前测试套件,所有测试用例之前执行。

●after()---当前测试套件,所有测试用例之后执行。

●beforeeach()----当前测试套件,每个测试用例之前执行。

●aftereach()-----当前测试套件,每个测试用例之后执行。


它们的作用是测试开始时设置测试的先决条件(比如准备测试数据)。或者测试结束后对测试环境进行清理(例如清理DB)。使用个例子看一下。


describe('1st Describe to show 1st suite ', () => {
    before(function(){        
    cy.log("Will run before all test scripts.")    
    }    
    )
    beforeEach(function(){        
    cy.log("Will run before each testing scripts.")    
    }
    )
    afterEach(function(){        
    cy.log("Will run after each testing scripts.")    
    }
    )
describe('Describe Inside Describe to show nested suite', () => {
    it('first test inside', () => {            
    cy.log('first test inside')            
    assert.equal(true, true)        
    })   
    })    
    it('1st test', () => {
        cy.log('1st test')        
        assert.equal(true, true)    
        })    
     specify('2nd test', () => {        
     cy.log('2nd test')        
     assert.equal(true, true)    
     })      
     after(function(){        
     cy.log("Will run after all test scripts.") 
     })
     })
context('2nd suite', () => {
    it('first test', () => {        
    cy.log('first test')        
    assert.equal(true, true) 
    })    
    it('2nd test', () => {
    cy.log('2nd test')
    assert.equal(true, true)
    })
})


这是例子的执行结果,通过例子的执行结果可以清晰的看出作用域。


5c173c78ef1746a3a36aaf574cd71c5b_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.jpg


e990bf25a4b14f50a17b2eb0be388a18_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.jpg


你学会了吗?


如果觉得阿萨的内容对你有帮助,欢迎围观点赞。


相关文章
|
10月前
|
JavaScript 开发者
Vue组件生命周期钩子函数有哪些?它们分别在什么时候触发?
Vue组件生命周期钩子函数有哪些?它们分别在什么时候触发?
186 0
|
JavaScript
Vue钩子函数以及生命周期
Vue钩子函数以及生命周期
|
JavaScript
VUE3(十)生命周期及钩子函数
Vue实例有一个完整的生命周期,也就是从开始创建、初始化数据、编译模板、挂载Dom、渲染→更新→渲染、卸载等一系列过程,我们称这是Vue的生命周期。通俗说就是Vue实例从创建到销毁的过程,就是生命周期。
5987 0
VUE3(十)生命周期及钩子函数
|
5月前
|
存储 前端开发 JavaScript
useRef 钩子使用技巧
【10月更文挑战第12天】本文详细介绍了 React 中的 `useRef` Hook,包括其基础概念、基本用法、常见问题与易错点以及如何避免这些问题。通过具体代码示例,解释了 `useRef` 的应用场景,如保存对 DOM 元素的引用、保存回调函数和定时器 ID 等,帮助开发者更有效地使用这一工具。
243 14
|
5月前
|
前端开发 开发者
useContext 钩子详解
【10月更文挑战第14天】`useContext` 是 React 中的一个 Hook,用于在组件树中传递数据,避免手动传递 props。本文从基本概念、使用方法、常见问题及解决方法等方面详细介绍了 `useContext`,并提供了代码示例,帮助开发者更好地理解和应用这一钩子。
173 5
|
5月前
|
JavaScript
|
5月前
|
前端开发 JavaScript 开发者
useEffect 钩子详解与实战
【10月更文挑战第3天】React 作为一个流行的 JavaScript 库,通过 Hooks 大幅简化了组件开发。`useEffect` 是一个核心 Hook,用于处理函数组件中的副作用操作,如数据获取和 DOM 更改。本文详细介绍了 `useEffect` 的基本语法、常见用法及示例,包括模拟 `componentDidMount`、`componentDidUpdate` 和 `componentWillUnmount`。此外,还探讨了如何避免无限循环渲染和内存泄漏等问题,并提供了相应的解决方案,帮助开发者更好地理解和应用 `useEffect`,提升应用程序的性能与稳定性。
87 7
|
10月前
|
JavaScript
【vue】生命周期钩子函数的执行过程和父子组件钩子函数的执行顺序
【vue】生命周期钩子函数的执行过程和父子组件钩子函数的执行顺序
53 1
|
10月前
|
JavaScript 前端开发
生命周期钩子函数
生命周期钩子函数
59 1
|
JavaScript
钩子函数讲解
钩子函数讲解
98 0