Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Comandos personalizados

13/24
Recursos

En esta clase aprenderemos a crear comandos personalizados con Cypress. La idea es que cada conjunto o suite de tests sea independiente entre sí; sin embargo, hay ocasiones en que varios tests o grupos de tests requieren ejecutar instrucciones comunes. Los comandos personalizados son una manera muy conveniente de agrupar varias instrucciones para reutilizarlas o compartirlas entre diferentes lugares de nuestro flujo de testing en una o varias suites.

La definición de los comandos personalizados se hace en el archivo comands.js en la carpeta /support de la siguiente manera:

Cypress.Commands.add( 'miComandoPersonalizado', ( <params> ) => { 
  // --- instrucciones comunes agrupadas como comando personalizado
  ...
} )

luego para hacer uso del comando personalizado, se debe invocar como cualquier método propio de Cypress: cy.miComandoPersonalizado( <params> ).

Aportes 12

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

Hasta el momento me parece una muy buena herramienta para crear mis pruebas automatizadas, aunque el código para utilizar firebase da errores hay que hacer ajustes para que corra de manera correcta.

Seria de gran ayuda esto mismo pero usando TS

Es una herramienta muy útil y fácil de usar, luego de varios intentos de correr el proyecto y no lograrlo, estoy probando con una web de en la que tengo control.

Si estan usando TyopeScript es posible que les marque error al llamar el comando, debemos agregar el tipado en esa seccion guiandose con este repositorio.

https://github.com/cypress-io/cypress-realworld-app/tree/develop/cypress

Gracias a: Jair Israel por compartirlo

Lo usaría principalmente para hacer varios casos de uso en una misma prueba, ejemplo rellenado de formulario.

Revisando la documentación me encontré con este ejemplo en donde hay mas ejemplos útiles y también usan TypeScript 😃 espero les sirva.
De igual forma también es bueno optar las buenas practicas que se mencionan en la documentación. En mi opinión la documentación de Cypress es muy amigable, y me ayudo también entender en parte el BDD, Por cierto también seria bueno tener un curso de Gherkin 😃

En mi caso, tengo varios specs, para cada uno una serie de comandos personalizados.
Entonces, para que en commands.js no queden tantas lineas de código que no están relacionadas, creé otros .js que los llamé helpers, que son archivos con comandos para cada spec; para poderlos usar hay que hacer el import de todos en support/index.js

👏

Si se ocupan todos los atributos de un objeto entonces se puede enviar el objeto completo dentro de un comando personalizado:

login.spec.js

  it('Debe registrar un usuario', () => {
        cy.get('@userData').then((userData) => {
            cy.registerUser(userData)
            cy.get('.error-msg').should('not.exist')
        })
    })

commands.js

Cypress.Commands.add('registerUser', (userData) => {
    cy.contains('Crear una cuenta').click()
    cy.get('#name').type(userData.name)
    cy.get('#title').type(userData.company)
    cy.get('#email2').type(userData.email)
    cy.get('#password2').type(userData.password)
    cy.contains('.button','Registrarse').click()
    cy.wait(3000)
    cy.contains('a','Dashboard').should('be.visible') 
})

Creacion de comandos personalizados

En donde trabajo, los equipos ya estan escribiendo sus tests en cypress, este curso me está ayudando muchísimo.

Los comandos personalizados los utilizaría para evitar el código duplicado y agilizar la creación de test.