Es un proceso, un método de trabajo, una herramienta, que se utiliza para identificar fallas en el software o producto con el fin de que este alcance un grado aceptable de madurez y estabilidad antes de ser lanzado.
<h3>Según la Pirámide de testing, existen varios niveles:</h3>Herramienta o framework, que nos permite simular esa interacción. Ha sido producto de una evolución a partir de conceptos y frameworks anteriores como: Selenium, PhantomJS, Nightwatch y Puppeteer.
Comandos para controlar el browser
cy.visit(): para cargar una URL
cy.reload(): para recargar la URL actual
cy.go(‘back’): para ir hacia atrás o adelante en la navegación
Comandos para selección de elementos
cy.get(’.selector’): para seleccionar según un selector html / css
cy.contains(‘text): para seleccionar de acuerdo al contenido
cy.contains(’.selector’, ‘texto’): para seleccionar según el selector y el contenido
Comandos para interactuar con los elementos
cy.get(’.selector’).click(): para hacer click sobre un elemento
cy.get(’.selector’).dblclick(): para hacer dblclick sobre un elemento
cy.get(‘input’).type(): para escribir un texto
cy.get(‘input’).clear(): para limpiar un texto
cy.get(‘checkbox’).check(): para marcar check
cy.get(‘checkbox’).uncheck(): para quitar el check
cy.get(‘select’).select(‘item’): para seleccionar un item en una lista desplegable
Una aserción es lo que nos permite comprobar si el test está bien o no. Mientras no se hayan definido aserciones para nuestros tests, todos van a pasar como válidos.
//chaiJS: web de aserciones qué podemos usar el cypress
###Hooks
Los Hooks son funciones o métodos que se ejecutan en determinados momentos del flujo de ejecución de los tests.
Los que usaremos en nuestro proyecto son:
Variables, Fixtures y Alias
Los fixtures son estructuras u objetos JSON definidos en archivos individuales que se pueden reutilizar en cualquier momento de la secuencia de ejecución de los tests. Para poder hacer referencia a ellos posteriormente es necesario asignarles un alias.
La forma de incorporar un fixture en cada uno de los tests, sería incorporándolo en el Hook beforeEach() de la manera siguiente:cy.fixture(<archivo.json>).as(<alias>)
y para poder hacer uso de éste, se le debe asignar un alias:cy.get('@alias').then( ( var ) => { // ---- en este ámbito ya se puede usar como una variable más ... cy.get('input').type( var ) ... })
Al usar el símbolo “”@"" en el selector, se hace referencia a una variable (fixture) y no a un elemento de la interfaz.
Es aquel en el que las pruebas están sujetas a valores o condiciones de la interfaz que no son inmutables, textos o contenidos de elementos del DOM, fecha y hora, entre otros. Es una práctica que se debe evitar en la mayoría de los casos, ya que puede conducir a resultados inconsistentes también conocidos como flaky tests en los que, para configuraciones y estados constantes, se obtienen resultados distintos e impredecibles.
//configurar intellisense = https://docs.cypress.io/guides/tooling/intelligent-code-completion.html
Muchas gracias por el aporte
End-to-end testing
Buenísimo. Lo que necesitaba.
<code>