在赛普拉斯中,何时使用自定义命令与任务?

问题描述 投票:0回答:1

自定义命令和任务之间有什么区别?我正在尝试了解如何分别使用它们。

自定义命令文档:https://docs.cypress.io/api/cypress-api/custom-commands.html

任务文档:https://docs.cypress.io/api/commands/task.html

cypress
1个回答
0
投票

A commandcy对象上的most方法)是将“操作”排队(按顺序)到当前执行的命令队列中的函数,这些命令以串行方式运行。在上一个命令未完成之前,下一个命令不会执行。大多数命令直接在浏览器中执行。

用于与您的受测Web应用程序(AUT)进行交互---主要是与DOM交互,例如通过cy.get(selector)查询DOM;并做出断言。

A task是在赛普拉斯后端进程(节点)上而非在浏览器中定义和执行的功能。要执行任务(您先前在cypress/plugins/index.js文件中定义过),您需要首先通过cy.task(taskName, data)将它作为常规命令放入测试中。然后,赛普拉斯(当命令轮到执行时)将消息发送到后端进程(通过IPC通道),在该进程中执行任务。

[如果您的任务返回数据,则该数据将被序列化(通过JSON.stringify或类似方式),然后发送回浏览器,并传递到您可能提供给链接到.then()命令的cy.task()的回调中。

任务主要用于与您自己的服务器后端进行通信,例如播种数据库;或对于I / O,例如读/写文件。

© www.soinside.com 2019 - 2024. All rights reserved.