Cypress 的 before 和 beforeEach 钩子函数的使用方式
假设您有一个 spec,其中包含几个测试。 在这些测试中,您将打开一个页面并测试一些功能。 每次您想使用 .visit() 命令打开该页面时:
it('test #1', () => {cy.visit('/')// rest of your test})it('test #2', () => {cy.visit('/')// rest of your test})
通过几次测试,事情可能会以某种方式重复。 对于这种情况,您可以改为使用 before() 钩子,它会在所有测试之前打开您的页面:
before(() => {cy.visit('/')})it('test #1', () => {// rest of your test
})it('test #2', () => {// rest of your test
})
请记住,cypress 会在两次测试之间清除浏览器的状态。 所以如果你例如 在测试 1 中登录,您将在测试 2 中注销。
这里需要注意一件事 - 测试 2 可能取决于测试 1 的结果。 如果第一个测试失败,第二个测试可能会在我们的应用程序中的不同位置开始,并为该规范中的所有测试创建多米诺骨牌效应。 以测试不会相互影响的方式隔离您的测试是一种很好的做法。 为此,您可能会发现 beforeEach() 钩子更有用。 这可能需要您以某种方式构建测试,但会帮助您获得整体测试稳定性。
Nested before() and beforeEach() hooks
现在假设您有多个钩子和不同的 describe() 和 it() 块。 这可能是一开始有点混乱的地方,但是当你知道它是如何工作的时候就会变得非常清楚。 考虑以下代码:
before(() => {cy.log('orange')})beforeEach(() => {cy.log('banana')})describe('group #1', () => {before(() => {cy.log('apple')})beforeEach(() => {cy.log('cherry')})it('test #1', () => {// your test})})
运行时执行顺序如下:
比较我们在测试中编写这些的顺序和执行这些测试的顺序。 我喜欢在执行测试或 describe() 块之前将所有钩子视为“压扁”在一起。
Using beforeEach block in support/index.js
有时我喜欢使用这些块来运行我想在所有测试之前运行的“全局”beforeEach() 块。 我在关于处理来自 API 的数据的博客中描述了一个这样的案例。 我为自己创建了一个存储空间,并在每次测试之前将其擦除。 我像这样使用我的 support/index.js 文件:
beforeEach(() => {Cypress.env('boards', []);Cypress.env('lists', []);});
Cypress 的 before 和 beforeEach 钩子函数的使用方式相关推荐
- Vue3.x中自定义时钟钩子函数(TypeScript语法)
钩子函数的运用能使我们的代码更加简洁且易于维护,那么在Vue3.x中钩子函数的编写方式是怎样的呢? 下面,我以一个点击获取当前时间的例子来记录钩子函数的编写过程. 创建hooks目录 一般 ...
- vue 函数 路由跳转_vue路由的钩子函数和跳转
首页可以控制导航跳转,beforeEach,afterEach等,一般用于页面title的修改.一些需要登录才能调整页面的重定向功能. beforeEach主要有3个参数to,from,next. t ...
- before vue路由钩子_vue组件级路由钩子函数介绍,及实际应用
正如其名,vue-router 提供的导航钩子主要用来拦截导航,让它完成跳转或取消. 有多种方式可以在路由导航发生时执行钩子:全局的.单个路由独享的.或者组件级的. 一.全局钩子 你可以使用 rout ...
- vue组件级路由钩子函数介绍,及实际应用
正如其名,vue-router 提供的导航钩子主要用来拦截导航,让它完成跳转或取消. 有多种方式可以在路由导航发生时执行钩子:全局的.单个路由独享的.或者组件级的. 一.全局钩子 你可以使用 rout ...
- vue路由的钩子函数有哪些?都做了哪些事情?
Vue Router 是 Vue.js 官方的路由管理器.它和 Vue.js 的核心深度集成,让构建单页面应用变得易如反掌.包含的功能有: 嵌套的路由/视图表 模块化的.基于组件的路由配置 路由参数. ...
- “约见”面试官系列之常见面试题之第七十六篇之vue-router中的路由钩子函数基本用法 (建议收藏)
vue-router中的路由钩子函数基本用法 路由钩子函数分为三种类型如下: 第一种:全局钩子函数. router.beforeEach((to, from, next) => { consol ...
- vue知识(四)生命周期、钩子函数、路由
文章目录 一.生命周期 (一)vue生命周期 二.钩子函数 (一)钩子函数 (二)4大阶段8个方法 (1)如何知道vue生命周期到达了什么阶段? (2)钩子函数有哪些 (三)初始化 (1)new Vu ...
- vue-router的钩子函数
vue路由钩子大致可以分为三类: 1.全局钩子 主要包括beforeEach和aftrEach, beforeEach函数有三个参数: to:router即将进入的路由对象 from:当前导航即将离开 ...
- vue进入页面执行的钩子函数_vue router的钩子函数总结
模块一:全局导航钩子函数 1.vue router.beforeEach(全局前置守卫) beforeEach的钩子函数,它是一个全局的before 钩子函数, (before each)意思是在 每 ...
最新文章
- 博为峰JavaEE技术文章 —— Hibernate 指南(3)Hbm文件
- iOS.访问通讯录.02.写入联系人
- Python Tensorflow神经网络实现股票预测
- Node.js模块之Buffer
- Avalonia跨平台入门第四篇之Popup在uos下问题
- 深度揭秘Twitter的新一代流处理引擎Heron
- 中国AI公司公开击败谷歌微软,这次是Yi+AI视觉团队
- 杭州街头惊现“梦想改造家”,ATM取款区变废为宝
- 分式求二阶导数_一道与三角零点距离有关的导数问题
- 细述 wxWindows
- 微信小程序调查问卷避坑
- 微信小程序401unauthorized授权问题解决方法
- python 构建和解析邮件
- kali linux 账号管理
- AndroidStudio利用android-support-multidex解决65536问题64k问题
- cocos2dx点击按钮更改按钮图片
- 终于等到了!十位Java架构师整理的“阿里P7”养成计划
- JavaScript起源及发展
- Linux文件系统挂载的概念
- servicecomb-pack
热门文章
- android获得一个view的高度,Android ViewTreeObserver使用总结及获得View高度的几种方法...
- Oracle 查看表空间、数据文件的大小及使用情况
- Windows8.1硬盘安装Ubuntu14.04以及卸载Ubuntu14.04参考教程[图]
- Windows 10 中 VMware 要求禁用 Device Guard 问题
- 修改mysql用户的密码
- rhel 4/oracle linux 4/centos linux 4 配置本地yum资源库
- Android控件— — —ImageView
- mac下搭建lua环境
- 地址总线与内存大小的关系(待续…)
- 广播网关GPC为MDS多媒体调度再添虎翼