如何在 cypress 中创建可链接的命令?

Tir*_*tra 5 javascript testing node.js npm cypress

假设我有一个可变的用户名。

现在,我的可链接函数想要检查用户名是否为空。

前:

if(username !== "") {
   cy.get('#username').type(username)
}
Run Code Online (Sandbox Code Playgroud)

之后(期望):

cy.get('#username').type(username).ifNotEmpty()        //ifNotEmpty will be my chainable func
Run Code Online (Sandbox Code Playgroud)

所以我的问题是这可能吗?如果是,那么如何?

Fod*_*ody 6

你可能只是想做出一些.type()改变

Cypress.Commands.add('typeIfNotEmpty', { prevSubject: true }, (subject, textToType) => {
  if (textToType) {
   cy.wrap(subject).type(textToType)
  }
  return subject  // allow further chaining
})

cy.get('#username')
  .typeIfNotEmpty(username)
  .should(...)               // some assertion on '#username' element
Run Code Online (Sandbox Code Playgroud)