Quizá No Necesitemos Pruebas de Componentes

Rate this content
Bookmark

Las pruebas son obligatorias y las pruebas unitarias son la base para construir un buen sistema de pruebas para nuestro proyecto. Pero para proyectos de frontend que involucran componentes, ¿cuántas pruebas unitarias se consideran eficientes y no excesivas? ¿Deberíamos usar bibliotecas adicionales como Testing Library o Vue Test Utils con Vitest para probar un componente, cuando podemos hacer lo mismo solo con Playwright? ¿Realmente es necesario realizar una prueba de componente utilizando un framework de E2E como Playwright? Descubrámoslo en mi charla.

This talk has been presented at Vue.js Live 2024, check out the latest edition of this JavaScript Conference.

Maya Shavin
Maya Shavin
26 min
25 Apr, 2024

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Las pruebas de componentes son un área gris entre las pruebas de integración y las pruebas unitarias. La aplicación de demostración se centra en el componente del carrito y en la escritura de casos de prueba para las pruebas de componente de Playwright y VTest. La primera prueba del carrito encuentra un error con el método invisible en View Test.
Available in English: We May Not Need Component Testing

1. Introducción a las pruebas de componentes

Short description:

Hola, ¿cómo estás hoy? Espero que hayas disfrutado de la conferencia hasta ahora. ¿Quizás no necesitemos pruebas de componentes, o sí? Mi nombre es Maia Chavin, una ingeniera de software senior en Microsoft Industrial AI, con más de 10 años de experiencia en desarrollo web y front-end. También soy autora publicada y experta en desarrollo de Google en tecnologías web.

Hola, ¿cómo estás hoy? Espero que hayas disfrutado de la conferencia hasta ahora. Y ahora pasemos a nuestra próxima discusión. Quizás no necesitemos pruebas de componentes, ¿o sí? En primer lugar, mi nombre es Maia Chavin. Soy una ingeniera de software senior en Microsoft Industrial AI. También he estado trabajando en la web y en el stack de front-end durante más de 10 años. Soy autora publicada con mi último libro sobre LearningView, publicado por O'Reilly. Así que si estás interesado en LearningView, ViewTree más TypeScript, echa un vistazo a mi libro. También soy una Embajadora Nativa de la Nube, una organizadora de la comunidad habilitada para Vue.js y una experta en desarrollo de Google en tecnologías web. Puedes consultar mi publicación en el blog en maiachavin.com o seguirme en Maia Chavin en Twitter o LinkedIn.

2. Understanding Component Testing

Short description:

Demos un paso atrás y recapitulemos sobre las pruebas. Tenemos tres capas de pruebas: prueba unitaria, prueba de integración y prueba de extremo a extremo. Las pruebas de componentes se pueden dividir en dos tipos: pruebas de componentes en pequeño (pruebas unitarias) y pruebas de componentes en grande (pruebas de integración o extremo a extremo). Las pruebas de componentes son un área gris entre las pruebas de integración y las pruebas unitarias, dependiendo del escenario y los objetivos de las pruebas. En nuestra aplicación de demostración, compararemos VTest con VueTestUtil y las pruebas de componentes de Playwright.

Y eso es suficiente sobre mí. Demos un paso atrás y recapitulemos sobre las pruebas. Entonces, las pruebas, el parámetro de las pruebas es el parámetro más esencial que utilizaremos para construir cualquier sistema de pruebas y cualquier aplicación, ¿verdad? Entonces, para este parámetro de pruebas, tenemos tres capas: prueba unitaria, prueba de integración y prueba de extremo a extremo. La prueba unitaria se considera la base más sólida para todas nuestras pruebas de aplicación, que incluye todas las lógicas independientes y probables que conforman nuestro sistema, nuestras aplicaciones. Luego, la prueba de integración es probar el flujo de datos entre diferentes módulos de lógica probables cuando los conectas juntos, para asegurarte de que nada se rompa en el medio. Y finalmente, la prueba de extremo a extremo es la más costosa, con muy pocas pruebas. Puedes ver en la parte superior del parámetro. Es costoso, pero también es muy importante simular la experiencia de los usuarios paso a paso sobre cómo interactúan con la aplicación antes de hacer la implementación.

Y así llegamos a la siguiente pregunta. ¿A qué pertenece la prueba de componentes? Hemos estado hablando mucho sobre la prueba de componentes, sobre cómo podemos hacerlo con Playwright, cómo lo hacemos con Cypress. Pero, ¿qué es la prueba de componentes y a qué pertenece? Bueno, la prueba de componentes en muchos aspectos tiene muchos significados diferentes. En el backend, simplemente significa un fragmento de código, un módulo, un bloque de código en el sistema que necesitas probar de forma independiente. Mientras tanto, en el frontend, se vuelve más complejo. Entonces, de hecho, la prueba de componentes se puede dividir en dos tipos. La prueba de componentes en pequeño, que es la prueba modular, o podemos llamarla prueba de unidad. La prueba de componentes en grande significa que estás validando un componente con la ayuda de otros componentes, como una galería, que depende de los componentes de elementos de la galería para renderizar y mostrar la lista completa de elementos. Lo que significa que cuando probamos este elemento de galería, no solo probamos el componente individual aislado del elemento de galería, lo siento, galería. Tenemos que probarlo junto con los elementos de la galería para ver si la entrada y salida de un componente serán necesarios para las pruebas. Otro componente vendrá sin problemas, y también debemos preocuparnos por la interacción del usuario, y así sucesivamente. Por eso, podemos decir que la prueba de componentes se divide en dos tipos. La prueba de componentes en pequeño, prueba de unidad. La prueba de componentes en grande, prueba de integración o prueba de extremo a extremo. En la prueba de extremo a extremo, realmente depende de cómo definas el flujo de tu prueba de componente individual que estás buscando.

Entonces, lo que significa en la pirámide, volvamos a la pregunta que hicimos antes, ¿a qué pertenece la prueba de componentes? En la pirámide de pruebas, es un área gris. De hecho, es un área gris entre la prueba de integración y la prueba de unidad. Realmente depende del escenario y los objetivos de las pruebas para decidir si la prueba de componentes que estás tratando de lograr es una prueba de integración o una prueba de unidad. Y eso nos lleva a nuestra próxima pregunta. ¿Cuándo vamos a escribir una prueba de unidad para el componente y cuándo vamos a escribir una prueba de integración para cada componente, o ambas? ¿Y qué tecnología debemos usar para cada escenario? Para eso, vamos a nuestra aplicación de demostración. Entonces, en nuestra aplicación de demostración, vamos a tener una aplicación muy simple, una tienda de pizzas, que permite a los usuarios agregar al carrito y luego actualizar el carrito, y también buscar y actualizar la URL. Para la aplicación de demostración, vamos a realizar la prueba, la comparación entre dos métodos. El primero es VTest con VueTestUtil, y el segundo es la prueba de componentes de Playwright.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Solicitudes de Red con Cypress
TestJS Summit 2021TestJS Summit 2021
33 min
Solicitudes de Red con Cypress
Top Content
Cecilia Martinez, a technical account manager at Cypress, discusses network requests in Cypress and demonstrates commands like cydot request and SCI.INTERCEPT. She also explains dynamic matching and aliasing, network stubbing, and the pros and cons of using real server responses versus stubbing. The talk covers logging request responses, testing front-end and backend API, handling list length and DOM traversal, lazy loading, and provides resources for beginners to learn Cypress.
Pruebas de Aplicaciones Web con Playwright
TestJS Summit 2022TestJS Summit 2022
20 min
Pruebas de Aplicaciones Web con Playwright
Top Content
Testing web applications with Playwright, a reliable end-to-end testing tool. Playwright offers fast execution, powerful tooling, and support for multiple languages. It provides precise selectors, web-first assertions, and code generation for easy testing. Playwright also offers features like live debugging, tracing, and running tests on CI. The future of Playwright aims to make testing easy and fun, with a focus on creating frustration-free web experiences.
Pruebas de ciclo completo con Cypress
TestJS Summit 2022TestJS Summit 2022
27 min
Pruebas de ciclo completo con Cypress
Top Content
Cypress is a powerful tool for end-to-end testing and API testing. It provides instant feedback on test errors and allows tests to be run inside the browser. Cypress enables testing at both the application and network layers, making it easier to reach different edge cases. With features like AppActions and component testing, Cypress allows for comprehensive testing of individual components and the entire application. Join the workshops to learn more about full circle testing with Cypress.
Desarrollo Efectivo de Pruebas
TestJS Summit 2021TestJS Summit 2021
31 min
Desarrollo Efectivo de Pruebas
Top Content
This Talk introduces Test Effective Development, a new approach to testing that aims to make companies more cost-effective. The speaker shares their personal journey of improving code quality and reducing bugs through smarter testing strategies. They discuss the importance of finding a balance between testing confidence and efficiency and introduce the concepts of isolated and integrated testing. The speaker also suggests different testing strategies based on the size of the application and emphasizes the need to choose cost-effective testing approaches based on the specific project requirements.
Playwright Test Runner
TestJS Summit 2021TestJS Summit 2021
25 min
Playwright Test Runner
Top Content
The Playwright Test Runner is a cross-browser web testing framework that allows you to write tests using just a few lines of code. It supports features like parallel test execution, device emulation, and different reporters for customized output. Code-Gen is a new feature that generates code to interact with web pages. Playwright Tracing provides a powerful tool for debugging and analyzing test actions, with the ability to explore trace files using TraceViewer. Overall, Playwright Test offers installation, test authoring, debugging, and post-mortem debugging capabilities.

Workshops on related topic

Diseñando Pruebas Efectivas con la Biblioteca de Pruebas de React
React Summit 2023React Summit 2023
151 min
Diseñando Pruebas Efectivas con la Biblioteca de Pruebas de React
Top Content
Featured Workshop
Josh Justice
Josh Justice
La Biblioteca de Pruebas de React es un gran marco para las pruebas de componentes de React porque responde muchas preguntas por ti, por lo que no necesitas preocuparte por esas preguntas. Pero eso no significa que las pruebas sean fáciles. Todavía hay muchas preguntas que tienes que resolver por ti mismo: ¿Cuántas pruebas de componentes debes escribir vs pruebas de extremo a extremo o pruebas de unidad de nivel inferior? ¿Cómo puedes probar una cierta línea de código que es difícil de probar? ¿Y qué se supone que debes hacer con esa persistente advertencia de act()?
En esta masterclass de tres horas, presentaremos la Biblioteca de Pruebas de React junto con un modelo mental de cómo pensar en el diseño de tus pruebas de componentes. Este modelo mental te ayudará a ver cómo probar cada bit de lógica, si debes o no simular dependencias, y ayudará a mejorar el diseño de tus componentes. Te irás con las herramientas, técnicas y principios que necesitas para implementar pruebas de componentes de bajo costo y alto valor.
Tabla de contenidos- Los diferentes tipos de pruebas de aplicaciones de React, y dónde encajan las pruebas de componentes- Un modelo mental para pensar en las entradas y salidas de los componentes que pruebas- Opciones para seleccionar elementos DOM para verificar e interactuar con ellos- El valor de los mocks y por qué no deben evitarse- Los desafíos con la asincronía en las pruebas de RTL y cómo manejarlos
Requisitos previos- Familiaridad con la construcción de aplicaciones con React- Experiencia básica escribiendo pruebas automatizadas con Jest u otro marco de pruebas unitarias- No necesitas ninguna experiencia con la Biblioteca de Pruebas de React- Configuración de la máquina: Node LTS, Yarn
Cómo empezar con Cypress
TestJS Summit 2022TestJS Summit 2022
146 min
Cómo empezar con Cypress
Featured WorkshopFree
Filip Hric
Filip Hric
La web ha evolucionado. Finalmente, también lo ha hecho el testing. Cypress es una herramienta de testing moderna que responde a las necesidades de testing de las aplicaciones web modernas. Ha ganado mucha popularidad en los últimos años, obteniendo reconocimiento a nivel mundial. Si has estado esperando aprender Cypress, ¡no esperes más! Filip Hric te guiará a través de los primeros pasos sobre cómo empezar a usar Cypress y configurar tu propio proyecto. La buena noticia es que aprender Cypress es increíblemente fácil. Escribirás tu primer test en poco tiempo y luego descubrirás cómo escribir un test de extremo a extremo completo para una aplicación web moderna. Aprenderás conceptos fundamentales como la capacidad de reintentar. Descubre cómo trabajar e interactuar con tu aplicación y aprende cómo combinar pruebas de API y de UI. A lo largo de todo este masterclass, escribiremos código y realizaremos ejercicios prácticos. Saldrás con una experiencia práctica que podrás aplicar a tu propio proyecto.
Detox 101: Cómo escribir pruebas de extremo a extremo estables para su aplicación React Native
React Summit 2022React Summit 2022
117 min
Detox 101: Cómo escribir pruebas de extremo a extremo estables para su aplicación React Native
Top Content
WorkshopFree
Yevheniia Hlovatska
Yevheniia Hlovatska
A diferencia de las pruebas unitarias, las pruebas de extremo a extremo buscan interactuar con su aplicación tal como lo haría un usuario real. Y como todos sabemos, puede ser bastante desafiante. Especialmente cuando hablamos de aplicaciones móviles.
Las pruebas dependen de muchas condiciones y se consideran lentas e inestables. Por otro lado, las pruebas de extremo a extremo pueden dar la mayor confianza de que su aplicación está funcionando. Y si se hace correctamente, puede convertirse en una herramienta increíble para aumentar la velocidad del desarrollador.
Detox es un marco de pruebas de extremo a extremo en caja gris para aplicaciones móviles. Desarrollado por Wix para resolver el problema de la lentitud e inestabilidad y utilizado por React Native en sí como su herramienta de pruebas E2E.
Únete a mí en esta masterclass para aprender cómo hacer que tus pruebas de extremo a extremo móviles con Detox sean excelentes.
Prerrequisitos- iOS/Android: MacOS Catalina o más reciente- Solo Android: Linux- Instalar antes de la masterclass
Masterclass de Pruebas de API con Postman
TestJS Summit 2023TestJS Summit 2023
48 min
Masterclass de Pruebas de API con Postman
Top Content
WorkshopFree
Pooja Mistry
Pooja Mistry
En el panorama siempre en evolución del desarrollo de software, garantizar la fiabilidad y funcionalidad de las API se ha vuelto primordial. "Pruebas de API con Postman" es una masterclass completa diseñada para equipar a los participantes con los conocimientos y habilidades necesarios para sobresalir en las pruebas de API utilizando Postman, una herramienta poderosa ampliamente adoptada por profesionales en el campo. Esta masterclass profundiza en los fundamentos de las pruebas de API, avanza a técnicas de prueba avanzadas y explora la automatización, las pruebas de rendimiento y el soporte multiprotocolo, proporcionando a los asistentes una comprensión holística de las pruebas de API con Postman.
Únete a nosotros para esta masterclass para desbloquear todo el potencial de Postman para las pruebas de API, agilizar tus procesos de prueba y mejorar la calidad y fiabilidad de tu software. Ya seas un principiante o un probador experimentado, esta masterclass te equipará con las habilidades necesarias para sobresalir en las pruebas de API con Postman.
Monitoreo 101 para Desarrolladores de React
React Summit US 2023React Summit US 2023
107 min
Monitoreo 101 para Desarrolladores de React
Top Content
WorkshopFree
Lazar Nikolov
Sarah Guthals
2 authors
Si encontrar errores en tu proyecto frontend es como buscar una aguja en un pajar de código, entonces el monitoreo de errores de Sentry puede ser tu detector de metales. Aprende los conceptos básicos del monitoreo de errores con Sentry. Ya sea que estés ejecutando un proyecto de React, Angular, Vue, o simplemente JavaScript “vainilla”, mira cómo Sentry puede ayudarte a encontrar el quién, qué, cuándo y dónde detrás de los errores en tu proyecto frontend.
Nivel de la masterclass: Intermedio
Pruebas de Aplicaciones Web utilizando Cypress
TestJS Summit - January, 2021TestJS Summit - January, 2021
173 min
Pruebas de Aplicaciones Web utilizando Cypress
WorkshopFree
Gleb Bahmutov
Gleb Bahmutov
Este masterclass te enseñará los conceptos básicos de cómo escribir pruebas de extremo a extremo utilizando Cypress Test Runner.
Cubriremos la escritura de pruebas, abarcando todas las características de la aplicación, estructurando las pruebas, interceptando solicitudes de red y configurando los datos del backend.
Cualquier persona que conozca el lenguaje de programación JavaScript y tenga NPM instalado podrá seguir el masterclass.