Pruebas de Componentes con Vitest

Rate this content
Bookmark

Las pruebas son importantes. Las pruebas unitarias adecuadas pueden eliminar la posibilidad de que aparezcan errores. Pero, ¿qué marco de pruebas será adecuado? Exploremos cómo podemos desarrollar una estrategia confiable y eficiente para el desarrollo y prueba de componentes con Vitest

FAQ

Maya Chavin menciona que aunque reconoce la necesidad de realizar pruebas, personalmente no disfruta el proceso de hacerlas.

Maya Chavin aconseja planificar antes de elegir un marco de pruebas, considerando primero las necesidades del proyecto y luego seleccionando una herramienta que se adapte a estas.

Maya Chavin enfatiza la importancia de la automatización en las pruebas, señalando que ayuda a asegurar la cobertura de código y optimiza el proceso de testing.

Maya Chavin es una Ingeniera de Software Senior en Microsoft, trabajando para el grupo Microsoft Industry AI.

Maya Chavin publicó un libro relacionado con el aprendizaje de Vue hace solo dos días.

Las pruebas unitarias evalúan componentes individuales, las pruebas de integración verifican la interacción entre componentes, y las pruebas de extremo a extremo se enfocan en la experiencia completa del usuario.

VTest es un marco de pruebas de JavaScript y TypeScript, desarrollado inicialmente para proyectos impulsados por VIT pero ahora aplicable a otros contextos. Se utiliza para realizar pruebas unitarias de forma rápida y eficiente.

Maya Shavin
Maya Shavin
29 min
07 Dec, 2023

Comments

Sign in or register to post your comment.

Video Summary and Transcription

Esta charla explora los desafíos de elegir y aprender marcos de pruebas, enfatizando la importancia de la planificación, la automatización y la priorización de las pruebas unitarias. El marco VTEST se presenta como una opción rápida y estable para las pruebas unitarias de código JavaScript y TypeScript, con un enfoque en la lógica y la simulación de dependencias externas. La charla también cubre las pruebas de los hooks de React, las pruebas de integración con TestingLibraryReact, las pruebas de componentes y la consecución de la cobertura de código. Las mejores prácticas incluyen la realización de pruebas de accesibilidad, la planificación de pruebas antes de la codificación y el uso de IDs de prueba de datos para la estabilidad.

Available in English: Component Testing With Vitest

1. Introducción a los Marcos de Prueba

Short description:

¡Gracias! Soy Maya Chavin, una Ingeniera de Software Senior en Microsoft trabajando con Microsoft Industry AI. Odio las pruebas, pero sabemos que las necesitamos. La complejidad del código y la elección de un marco de pruebas son desafíos. Esta charla es sobre otro marco y su curva de aprendizaje.

¡Gracias! Bueno, es bastante temprano en la mañana y un minuto, sí, está cargando. ¿Cómo te sientes hoy? ¿Todo bien? ¿Tienes café? De hecho, tomé un sorbo de café y todavía estoy muy tranquila. El clima me parece una locura.

De todos modos, antes de que deep dive en nuestra charla, solo quiero repetir lo que estaba hablando sobre mí misma. Así que soy Maya Chavin, soy una Ingeniera de Software Senior en Microsoft. Trabajo para un grupo llamado Microsoft Industry AI. Así que hacemos algo así como aprovechar diferentes tecnologías de IA para construir soluciones específicas de la industria con JetGPT, GPT, y todo este módulo. Publiqué mi libro hace solo dos días, sí. Así que si eres y no has conocido Vue antes, quieres aprender Vue, sí, échale un vistazo. Y era un mantenedor de código abierto. Puedes seguirme en Maya Chavin o seguir mi blog. Publico un artículo una vez cada luna azul, con suerte.

De todos modos, testing. Así que sí, tenemos que probar, todos lo saben, ¿verdad? Tengo una advertencia antes de continuar. Odio las pruebas. Sí. Realmente odio las pruebas. Cada vez que llego a las pruebas, odio las pruebas. Antes de llegar a la prueba, digo, sí, todos tienen que escribir pruebas, todos, literalmente incluyéndome a mí. Y siempre le digo a todos en mi equipo, tienes que escribir pruebas. Pero cuando voy a escribir la prueba yo misma, digo, vamos, ¿por qué alguien querría una prueba? Bueno, sabemos que necesitamos pruebas, pero siempre enfrentamos el dilema, y eso es por qué odiamos las pruebas, más o menos. Complejidad del código. Cualquiera que trabaje con una página de código muy grande conocerá el dolor cuando necesite escribir pruebas. Y necesitas escribir pruebas para asegurarte de que tu prueba solo verificará lo que sucedió en tu código y no porque alguien más haga algo y luego afecte tus calidades de tu código. Marco de testing. No vas a elegir un marco. ¿Qué marco vas a elegir? Y sí, esta charla es sobre otro marco. Sí. Lo sé. Y la curva de aprendizaje.

2. Desafíos de los Marcos de Pruebas

Short description:

Cada vez que hablamos de un nuevo marco de pruebas, cambiamos de uno a otro porque es más genial y rápido. Pero siempre hay una curva de aprendizaje. No todos están de acuerdo, y las APIs difieren. El dilema es asegurar una cobertura de código del 90%. Si no, los PR no se fusionarán. Todo se reduce al tiempo. ¿Cómo asignamos tiempo y esfuerzo a las pruebas?

Cada vez que hablamos de un nuevo testing marco, cambiamos de un testing marco a otro simplemente porque el otro es mucho más genial y rápido, siempre tenemos una curva de aprendizaje. Porque no a todos les gusta estar de acuerdo, no todas las API se ven igual, se sienten igual, hacen lo mismo. Y llegamos a un punto muy específico de dilema aquí. Pasas todo esto, todavía necesitas asegurarte de que tu prueba pase la cobertura mínima de tu base de código. ¿Y qué pasa si alguien decide que el 90% de tu base de código necesita ser cubierta por la prueba? Entonces lo haces. 89 o 99 no es 90. Y eso impide que tu PR se fusione y probablemente quieras levantarte de la mesa y gritarle a alguien por eso. Y todo se reduce a una sola cosa. Solo este dilema se reduce a una sola cosa, el tiempo.

QnA

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

Desarrollo Efectivo de Pruebas
TestJS Summit 2021TestJS Summit 2021
31 min
Desarrollo Efectivo de Pruebas
Top Content
Los desarrolladores quieren dormir tranquilos sabiendo que no rompieron la producción. Las empresas quieren ser eficientes para satisfacer las necesidades de sus clientes más rápido y obtener una ventaja competitiva antes. TODOS queremos ser coste efectivos... o debería decir... ¡PRUEBA EFECTIVA!¿Pero cómo hacemos eso?¿Nos sirve bien la terminología de "unidad" e "integración"?¿O es hora de un cambio? ¿Cuándo deberíamos usar cada estrategia para maximizar nuestra "efectividad de prueba"?¡En esta charla te mostraré una nueva forma de pensar sobre las pruebas coste efectivas con nuevas estrategias y nuevos términos de prueba!¡Es hora de ir MÁS PROFUNDO!
El Arte de las 'Vistas Humildes': Probando Aplicaciones React Native de Manera Inteligente
TestJS Summit 2023TestJS Summit 2023
32 min
El Arte de las 'Vistas Humildes': Probando Aplicaciones React Native de Manera Inteligente
En esta charla, exploramos el mundo divisivo de las pruebas, donde los desarrolladores a menudo se encuentran divididos entre no escribir pruebas y esforzarse por una cobertura de pruebas del 100%. Aprenda a navegar estas posiciones polarizantes y adopte una estrategia más matizada que hace que las pruebas sean eficientes y efectivas. Profundizaremos en el concepto de 'Vistas Humildes', donde minimizamos los objetos no probables extrayendo la lógica de los elementos de la interfaz de usuario a partes amigables para pruebas del código base. Este enfoque simplifica las pruebas, centrándose en la lógica de negocio en lugar de las complejidades de la interfaz de usuario. Descubra cómo la arquitectura Modelo-Vista-Presentador (MVP) ayuda a lograr esto, con los presentadores sirviendo como una capa lógica para las pruebas y los hooks ayudando a separar la lógica de los componentes de la interfaz de usuario. A lo largo de la charla, discutiremos los compromisos de este enfoque, el papel de las pruebas de extremo a extremo (E2E), y cómo lograr el equilibrio perfecto entre demasiadas y pocas pruebas. ¡Únase a nosotros mientras nos adentramos en el arte de crear 'Vistas Humildes', asegurando que nuestras aplicaciones React Native sean escalables, mantenibles y efectivamente probadas!
Quizá No Necesitemos Pruebas de Componentes
Vue.js Live 2024Vue.js Live 2024
26 min
Quizá No Necesitemos Pruebas de Componentes
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.
¡Es una trampa! - Trampas comunes en las pruebas y cómo solucionarlas
TestJS Summit 2021TestJS Summit 2021
20 min
¡Es una trampa! - Trampas comunes en las pruebas y cómo solucionarlas
Es una trampa` - una llamada o sensación con la que todos podríamos estar familiarizados, no solo cuando se trata de Star Wars. Señala un momento repentino de darse cuenta de un peligro inminente. Esta situación es una excelente alegoría para una desagradable realización en las pruebas. ¿Imagina tener las mejores intenciones cuando se trata de las pruebas pero aún así terminar con pruebas que no le brindan ningún valor en absoluto? ¿Pruebas que se sienten como un dolor para lidiar con ellas?
Cuando se escriben pruebas de frontend, hay muchas trampas en el camino. En resumen, pueden llevar a una mala mantenibilidad, un tiempo de ejecución lento y, en el peor de los casos, pruebas en las que no se puede confiar. Pero no tiene que ser así. En esta sesión, hablaré sobre los errores comunes de los desarrolladores (incluyendo los míos), al menos desde mi experiencia. Y, por supuesto, sobre cómo evitarlos. Después de todo, las pruebas no tienen por qué ser dolorosas.
Cómo detectar defectos de accesibilidad durante las pruebas unitarias y E2E
TestJS Summit 2021TestJS Summit 2021
7 min
Cómo detectar defectos de accesibilidad durante las pruebas unitarias y E2E
Para los desarrolladores, es mejor detectar cualquier defecto de accesibilidad durante las pruebas unitarias y E2E. Esta charla mostrará cómo automatizar las pruebas de accesibilidad utilizando jest y cypress.
Pruebas unitarias en aplicaciones Angular
TestJS Summit 2022TestJS Summit 2022
24 min
Pruebas unitarias en aplicaciones Angular
Angular ofrece muchas cosas de serie, incluyendo diversas funcionalidades relacionadas con las pruebas. Esta presentación demostrará cómo podemos aprovechar los sólidos fundamentos de las pruebas unitarias de Angular y aplicar ciertos patrones que facilitan las pruebas. Los temas tratados incluyen: dobles de prueba, patrón de prueba de módulo, arneses, "recetas" sobre cómo probar algunos casos comunes y más.

Workshops on related topic

Introducción a React Native Testing Library
React Advanced Conference 2022React Advanced Conference 2022
131 min
Introducción a React Native Testing Library
Workshop
Josh Justice
Josh Justice
¿Estás satisfecho con tus suites de pruebas? Si dijiste que no, no estás solo, la mayoría de los desarrolladores no lo están. Y hacer pruebas en React Native es más difícil que en la mayoría de las plataformas. ¿Cómo puedes escribir pruebas en JavaScript cuando el código JS y nativo están tan entrelazados? ¿Y qué diablos se supone que debes hacer con esa persistente advertencia de act()? Ante estos desafíos, algunos equipos nunca logran avanzar en las pruebas de su aplicación de React Native, y otros terminan con pruebas que no parecen ayudar y solo requieren tiempo adicional para mantener.
Pero no tiene que ser así. React Native Testing Library (RNTL) es una excelente biblioteca para pruebas de componentes, y con el modelo mental adecuado puedes usarla para implementar pruebas de bajo costo y alto valor. En este taller de tres horas aprenderás las herramientas, técnicas y principios que necesitas para implementar pruebas que te ayudarán a lanzar tu aplicación de React Native con confianza. Saldrás con una visión clara del objetivo de tus pruebas de componentes y con técnicas que te ayudarán a superar cualquier obstáculo que se interponga en ese objetivo.aprenderás:- Los diferentes tipos de pruebas en React Native, 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 de texto, imagen y código nativo para verificar e interactuar con ellos- El valor de las simulaciones y por qué no se deben evitar- Los desafíos con la asincronía en las pruebas de RNTL y cómo manejarlos- Opciones para manejar funciones y componentes nativos en tus pruebas de JavaScript
Requisitos previos:- Familiaridad con la construcción de aplicaciones con React Native- Experiencia básica en la escritura de pruebas automatizadas con Jest u otro framework de pruebas unitarias- No necesitas experiencia previa con React Native Testing Library- Configuración de la máquina: Node 16.x o 18.x, Yarn, ser capaz de crear y ejecutar con éxito una nueva aplicación Expo siguiendo las instrucciones en https://docs.expo.dev/get-started/create-a-new-app/