Gracias por invitarme. Quiero hablar sobre los errores comunes que cometen las personas al escribir pruebas en Cypress. Y primero, quiero recordar que todavía estamos en crisis climática. A pesar de la desaceleración de COVID, tenemos que actuar y actuar ahora. Puedes cambiar tu vida o unirte a una organización que lucha junto a ti. Puedes unirte a múltiples organizaciones. Recomiendo ambas opciones aquí.
En esta presentación, cubriré los errores comunes en las pruebas de Cypress. Y luego hablaré sobre algo que estamos tratando de hacer para minimizar la cantidad de errores, mejorando nuestra documentación. Terminaré con una discusión sobre nuestro repositorio de GitHub. Puedes encontrar las diapositivas en línea y si tienes preguntas, encuéntrame en Twitter.
Comencemos con los errores de Cypress. Cuando las personas comienzan a escribir pruebas de Cypress, olvidamos que las pruebas de Cypress se ejecutan en el navegador. Sé que es un hecho simple, pero es fácil escribir algo como esto, requerir el módulo del sistema de archivos y luego intentar leer el archivo. Bueno, esto nunca funcionará porque la prueba de Cypress se ejecuta en el navegador. No podrías ejecutar este código en el código del navegador de tu aplicación, ¿verdad? Entonces, en lugar de intentar acceder al sistema de archivos y al sistema operativo directamente desde su especificación, debes usar el comando Cypress que proporcionamos para acceder al sistema de archivos, código Node y tu sistema operativo. Puedes leer archivos, escribir archivos, ejecutar cualquier programa o ejecutar código Node usando la tarea.
La tarea es el comando más poderoso, es el que ejecuta el código Node que escribes. Por ejemplo, un caso de uso muy común es intentar conectarse a una base de datos. Por ejemplo, si quieres restablecer la base de datos antes de comenzar una prueba. Si escribes tu archivo de complemento de esta manera, se ejecuta en Node, puedes reutilizar parte de tu aplicación código para conectarte a la base de datos y luego, por ejemplo, truncar la tabla en una tarea. Tenemos muy buenos ejemplos de truncar la base de datos y volver a sembrarla con datos en nuestra aplicación real de Cypress. Puedes ver que estamos ejecutando la tarea DB seed antes de cada prueba.
Un pequeño detalle que quiero señalar, si miras los nombres de los archivos de especificación, bueno, aquí tienes un ejemplo de prueba de API y aquí tienes un ejemplo de una prueba de interfaz de usuario. Un error muy común es no elegir el tipo correcto de prueba. Si tu prueba es difícil de escribir, difícil de mantener, tiene mucho código repetitivo, bueno, tal vez elegiste el tipo de prueba incorrecto y estás luchando contra la corriente. Si estás probando un flujo de usuario para una aplicación web, es una prueba de extremo a extremo. Si estás probando una pieza individual de código como una función o una clase, probablemente quieras escribir una prueba unitaria. Si estás intentando probar un servidor y cómo responde a una solicitud REST o una solicitud de GraphQL, querrás escribir una prueba de API.
Comments