Cypress Testing Library
Esta página fue traducida por PageTurner AI (beta). No está respaldada oficialmente por el proyecto. ¿Encontraste un error? Reportar problema →
Cypress Testing Library permite utilizar consultas de pruebas DOM en
pruebas de navegación de extremo a extremo de Cypress.
- npm
- Yarn
npm install --save-dev cypress @testing-library/cypress
yarn add --dev cypress @testing-library/cypress
Uso
Cypress Testing Library extiende los comandos cy de Cypress.
Agrega esta línea al archivo cypress/support/commands.js de tu proyecto:
import '@testing-library/cypress/add-commands'
Ahora puedes usar algunos comandos findBy y findAllBy de DOM Testing Library
directamente desde el objeto global cy.
Consulta la documentación About queries como referencia.
Nota: las consultas
get*no son compatibles porque para pruebas de Cypress razonables necesitas reintentos, y las consultasfind*ya lo soportan. Las consultasquery*ya no son necesarias desde la v5 y se eliminarán en la v6. Las consultasfind*soportan completamente las aserciones integradas de Cypress (eliminando el único caso de uso paraquery*).
Con TypeScript
Las definiciones de tipos deben agregarse así en tsconfig.json:
{
"compilerOptions": {
"types": ["cypress", "@testing-library/cypress"]
}
}
Puedes encontrar todas las definiciones de la biblioteca aquí.
Ejemplos
Para mostrar ejemplos simples (extraídos de cypress/integration/find.spec.js):
cy.findByRole('button', {name: /Jackie Chan/i}).click()
cy.findByRole('button', {name: /Button Text/i}).should('exist')
cy.findByRole('button', {name: /Non-existing Button Text/i}).should('not.exist')
cy.findByLabelText(/Label text/i, {timeout: 7000}).should('exist')
// findByRole _inside_ a form element
cy.get('form')
.findByRole('button', {name: /Button Text/i})
.should('exist')
cy.findByRole('dialog').within(() => {
cy.findByRole('button', {name: /confirm/i})
})
Cypress Testing Library soporta tanto elementos jQuery como nodos DOM. Esto es
necesario porque Cypress usa elementos jQuery, mientras que DOM Testing Library
espera nodos DOM. Cuando pasas un elemento jQuery como container, obtendrá
el primer nodo DOM de la colección y lo usará como parámetro container
para las funciones de DOM Testing Library.