Testing React Applications Like an Engineer

This ad is not shown to multipass and full ticket holders
JSNation US
JSNation US 2025
November 17 - 20, 2025
New York, US & Online
See JS stars in the US biggest planetarium
Learn More
In partnership with Focus Reactive
Upcoming event
JSNation US 2025
JSNation US 2025
November 17 - 20, 2025. New York, US & Online
Learn more
Bookmark
Rate this content

A medida que nuestras aplicaciones de React crecen, también lo hacen los desafíos de mantener un código libre de errores. Crear un conjunto de pruebas confiable puede ser una tarea desalentadora, a menudo plagada de inestabilidad y complejidad. En esta charla, desglosaré un enfoque práctico y orientado a la ingeniería para escribir pruebas que realmente hagan que el desarrollo sea más fluido. Nos sumergiremos en las mejores formas de integrar Playwright con React, abandonar mentalidades de prueba obsoletas y adoptar estrategias que aseguren que tu aplicación funcione como se espera, sin dolores de cabeza. Espera ejemplos del mundo real, conclusiones prácticas y una nueva perspectiva sobre las pruebas que podría hacer que las disfrutes.

This talk has been presented at React Summit 2025, check out the latest edition of this React Conference.

Austin Shelby
Austin Shelby
19 min
17 Jun, 2025

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Imagina el escenario de trabajar en el rover de Marte, enfatizando la importancia de las pruebas exhaustivas. Aprende a probar aplicaciones de React de manera efectiva como un ingeniero. Enfócate en pruebas centradas en el usuario sobre paradigmas tradicionales. Escribe casos de prueba precisos como historias de usuario usando BDD para una comunicación clara. Utiliza un enfoque estructurado con pasos de organizar, actuar, afirmar para pruebas claras. TDD es valioso para el diagnóstico y soluciones de errores, enfatizando la reproducción y resolución eficiente de errores. Anota pruebas para reproducir y corregir errores, enfocándote en los flujos de usuario y la corrección efectiva de errores.

1. Testing React Applications like an Engineer

Short description:

Imagina el escenario de trabajar en el rover de Marte, enfatizando la importancia de las pruebas exhaustivas. Aprende a probar aplicaciones de React de manera efectiva como un ingeniero. Enfócate en problemas comunes de pruebas y el papel de los componentes de React en el desarrollo de software.

Imagina el siguiente escenario. Eres un ingeniero que trabaja en la NASA, y durante los últimos años has trabajado en el rover Perseverance de Marte. Y finalmente ha llegado el momento. Está en camino a Marte y todo va bien. Aterriza con éxito, pero luego hay un error inesperado. ¿Qué puedes hacer? No puedes simplemente volar a Marte y arreglarlo, bueno, porque es uno de los más caros Bueno, porque está a 140 millones de millas de distancia. Entonces, ¿qué haces? Exactamente para estos casos, cada función y cada línea de código en el rover tuvo que ser probada exhaustivamente. Y los ingenieros de la NASA son uno de los mejores testers del mundo. Replicaron los escenarios que pueden ocurrir en Marte en la Tierra. Crearon un pequeño campo de pruebas con un suelo similar al de Marte y expusieron el rover a temperaturas extremas, sonidos y vientos. Y podemos usar estas mismas técnicas cuando estamos probando nuestro software.

Y eso es lo que quiero ayudarte a hacer hoy. Quiero ayudarte a probar aplicaciones de React como un ingeniero. Mi nombre es Austin Shelby, y soy un ingeniero de software freelance de Finlandia. Algunos de ustedes pueden conocerme por mis videos de YouTube donde enseño programación. También soy el fundador de MandoFlow, la mejor manera de aprender mandarín chino en línea convirtiendo tus videos favoritos de YouTube en lecciones personalizadas de aprendizaje de idiomas. Así que cuando hablo de pruebas, quiero centrarme en cuatro problemas principales que la mayoría de los desarrolladores tienen, comenzando con que las pruebas se ven como una ocurrencia tardía.

Ahora, si has aprendido algo sobre pruebas, seguramente te has encontrado con una imagen que se ve algo así, la famosa pirámide de pruebas. Muestra la proporción óptima de pruebas de extremo a extremo, integración y unitarias que deberías tener en tu aplicación. O tal vez has visto una imagen como esta. O tal vez esta otra. Ahora, parece que todos tienen su propia opinión sobre la proporción perfecta. Pero creo que en la era de Next.js, no importa tanto porque la mayor parte del código que escribimos hoy en día se ve algo así. Ahora, los componentes de React en su forma más simple son solo una función de tu estado. Pero echemos un vistazo a esta única unidad, un solo componente de React. Aquí estamos obteniendo el usuario autenticado, que verifica la cookie de la solicitud y obtiene la sesión basada en ella. Si hay un usuario, lo redirigirá al perfil. Esta función de redirección lanza un error especial de Next.js. Y también estamos renderizando el formulario de registro. Así que esta única unidad está haciendo bastantes cosas.

2. User-Centric Testing with Playwright

Short description:

Enfócate en pruebas centradas en el usuario sobre paradigmas tradicionales. Explora escenarios de prueba con una aplicación de demostración usando Playwright. Escribe pruebas simples para el registro de usuarios y la integridad de datos en la aplicación.

Entonces, ¿deberíamos escribir una prueba unitaria para esto? No creo que importe. Y honestamente, me olvidaría del paradigma de integración unitaria y de extremo a extremo. Y más bien me centraría en el usuario porque la mayoría de las aplicaciones tienen uno de dos objetivos. O bien lograr que el usuario se registre o hacer que realice una compra.

Ahora, déjame mostrarte la aplicación de demostración que creé para esta charla. Podemos usar esto para explorar diferentes escenarios y cómo probarlos con Playwright. Así que en la aplicación de notas, puedo crear un nuevo usuario. Vamos a llamarlo Austin. Y añadir alguna contraseña. Una vez que nos registramos, nos redirige a la página de inicio y nos da un bonito mensaje de bienvenida. También podemos crear algunas notas. Como A, B y C. Y podemos ver que están siendo ordenadas por su tiempo de creación.

Ahora, usemos el registro como un ejemplo de cómo escribir una prueba simple con Playwright. Vamos a importar test y expect de Playwright, y luego vamos a escribir la prueba primero. Vamos a ir a la página de registro. Luego vamos a seleccionar el input de nombre de usuario por la etiqueta username y password. Luego vamos a llenar los datos. Test user y password 123. Y luego vamos a presionar enter. Luego vamos a realizar dos afirmaciones. Primero, que la página debería estar en la página de inicio y que tenemos el mensaje de bienvenida. Welcome test user. Pero falta una cosa más. Estas pruebas están tocando la base de datos y queremos que cada prueba comience desde cero.

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

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.
Todos pueden escribir pruebas fácilmente
TestJS Summit 2023TestJS Summit 2023
21 min
Todos pueden escribir pruebas fácilmente
Playwright is a reliable end-to-end testing tool for modern web apps that provides one API, full isolation, fast execution, and supports multiple languages. It offers features like auto-weighting, retrying assertions, seamless testing of iframes and shadow DOM, test isolation, parallelism, and scalability. Playwright provides tools like VS Code extension, UiMode, and Trace Viewer for writing, debugging, and running tests. Effective tests prioritize user-facing attributes, use playwright locators and assertions, and avoid testing third-party dependencies. Playwright simplifies testing by generating tests, providing code generation and UI mode, and allows for easy running and debugging of tests. It helps in fixing failed tests and analyzing DOM changes, fixing locator mismatches, and scaling tests. Playwright is open source, free, and continuously growing.
Pruebas pequeñas, grandes resultados
TestJS Summit 2022TestJS Summit 2022
21 min
Pruebas pequeñas, grandes resultados
Automated atomic tests are a great way to improve UI tests by making them less brittle and faster. The tests focus on testing a single feature or component and have minimal UI interactions. The Talk explores examples of automated atomic tests and their implementation on web applications. It also discusses the analysis of atomic tests, login tests, and working with JSON Web Tokens for authentication and authorization. The Talk concludes by highlighting the use of UI and web requests in automated atomic testing.
Quizá No Necesitemos Pruebas de Componentes
Vue.js Live 2024Vue.js Live 2024
26 min
Quizá No Necesitemos Pruebas de Componentes
Component testing is a gray area between integration and unit testing. The demo app focuses on the cart component and writing test cases for Playwright component test and VTest. The first cart test encounters a bug with the invisible method in View Test.
Prueba del Servicio de Correo con Playwright
TestJS Summit 2022TestJS Summit 2022
17 min
Prueba del Servicio de Correo con Playwright
Top Content
This Talk discusses how to test mail service with Playwright, covering e-mail verification, reset password user journey, and more. It explores the use of third-party providers for reliable e-mail delivery and demonstrates how Playwright can help perform checks on e-mail content. The Talk also introduces the concept of a fake SMTP server and showcases how fixtures can be used to access the SMTP server and perform assertions on the HTML body of emails. Playwright's HTML rendering feature allows for interaction with email content as if it were a regular web page. It highlights the ability to render HTML from API calls, perform assertions on the rendered page, and exclude dynamically generated data from visual regression tests.

Workshops on related topic

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
Workshop
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
Testing Web Applications Using Cypress
TestJS Summit - January, 2021TestJS Summit - January, 2021
173 min
Testing Web Applications Using Cypress
Top Content
Workshop
Gleb Bahmutov
Gleb Bahmutov
Esta masterclass te enseñará los conceptos básicos para escribir pruebas end-to-end útiles utilizando Cypress Test Runner.
Cubriremos la escritura de pruebas, cubriendo cada característica de la aplicación, estructurando pruebas, interceptando solicitudes de red y configurando los datos del backend.
Cualquiera que conozca el lenguaje de programación JavaScript y tenga NPM instalado podrá seguir adelante.
Construyendo una suite de pruebas significativa que no sea todo E2E
TestJS Summit 2023TestJS Summit 2023
89 min
Construyendo una suite de pruebas significativa que no sea todo E2E
Workshop
David Burns
David Burns
Todos somos enseñados a seguir la Pirámide de Pruebas pero la realidad es que construimos el Árbol de Pruebas de Navidad. En esta masterclass, David te explicará cómo desglosar proyectos y poner las pruebas donde necesitan estar. Al final de la masterclass, podrás actualizar tus proyectos para que cualquiera y todos puedan empezar a contribuir y realmente vivir según "La calidad es el trabajo de todos".
Te guiará a través de:- Pruebas de Componentes- Pruebas de API- Pruebas de Regresión Visual- Pruebas A11Y
También te explicará cómo configurar todo esto en tu pipeline de CI/CD para que puedas obtener ciclos de feedback más cortos y rápidos.
Depuración en vivo de pruebas de extremo a extremo para una aplicación serverless distribuida
TestJS Summit 2021TestJS Summit 2021
146 min
Depuración en vivo de pruebas de extremo a extremo para una aplicación serverless distribuida
Workshop
Serkan Ozal
Oguzhan Ozdemir
2 authors
En este masterclass, construiremos un entorno de pruebas para una aplicación preconstruida, luego escribiremos y automatizaremos pruebas de extremo a extremo para nuestra aplicación serverless. Y en el último paso, demostraremos lo fácil que es entender la causa raíz de una prueba errónea utilizando pruebas distribuidas y cómo depurarla en nuestro pipeline de CI/CD con Thundra Foresight.

Tabla de contenidos:
- Cómo configurar y probar tu infraestructura en la nube
- Cómo escribir y automatizar pruebas de extremo a extremo para tus cargas de trabajo serverless
- Cómo depurar, rastrear y solucionar problemas de fallas en las pruebas con Thundra Foresight en tus pipelines de CI/CD
Infraestructura Uniforme de Automatización de Navegadores
TestJS Summit - January, 2021TestJS Summit - January, 2021
127 min
Infraestructura Uniforme de Automatización de Navegadores
Workshop
Ivan Krutov
Ivan Krutov
En este masterclass, te mostraré cómo implementar y utilizar rápidamente una infraestructura de automatización de navegadores con la solución Moon. Comenzaremos implementando todo en tu estación de trabajo y pronto podrás ejecutar pruebas de Selenium, Playwright y Puppeteer en paralelo en el mismo clúster. Luego, te demostraré cómo ofrecer la misma experiencia de manera sencilla para tu equipo utilizando un clúster remoto en la plataforma de la nube.