Cypress documentation建议使用命令是重用代码段的正确方法,例如
Cypress.Commands.add("logout", () => {
cy.get("[data-cy=profile-picture]").click();
cy.contains("Logout").click();
});
cy.logout();
对于像这样的简单情况,为什么我要对普通的JS函数(及其附带的所有不错的IDE辅助)使用命令。将上述代码片段重写为
有什么缺点?export function logout(){
cy.get("[data-cy=profile-picture]").click();
cy.contains("Logout").click();
}
// and now somewhere in a test
logout();
答案 0 :(得分:0)
根据我使用 Cypress 的经验(一年项目和数百个测试用例),我可以说计划 JS 函数非常适合对 cy 命令进行分组。
从我的角度来看,自定义 cy 命令可能只有在将其合并到链处理中时才真正有用(利用主题参数或返回 Chainable 以在链中进一步使用)。否则,简单的 JS 函数更可取,因为它简单且完全支持 IDE。
如果您出于任何原因需要在 cypress 循环中执行某些操作,您始终可以通过 cy.wrap(null).then()
将代码包装在一个普通的 JS 函数中:
function myFunction() {
cy.wrap(null).then(() => {
console.log(("I'm inside the Cypress event loop"))
})
}