Probando Aplicaciones Vue 3 con Mock Service Worker

Rate this content
Bookmark
Esta charla discute la prueba de aplicaciones V3 con Mock Service Worker, que es una biblioteca que permite simular respuestas del servidor en pruebas. Cubre la configuración de Mock Service Worker mediante la creación de respuestas de API simuladas y su conexión con la aplicación. La charla también explica cómo escribir pruebas unitarias para componentes asíncronos utilizando el componente suspense de Vue. Demuestra cómo probar componentes que interactúan con APIs y manejan respuestas de error. Además, menciona la biblioteca de pruebas para componentes sin llamadas a API y enfatiza la importancia de probar las interacciones de los componentes y la integración de la API.

From Author:

En esta charla, discutiremos algunas mejores prácticas para probar aplicaciones Vue 3. Exploraremos cómo Mock Service Worker y Vue Testing Library pueden ayudarnos a probar aplicaciones Vue 3 de manera más cercana a una situación de usuario real. Los asistentes saldrán con una comprensión sólida de cómo probar eficazmente sus aplicaciones Vue 3 para garantizar la confiabilidad y mantenibilidad.

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

FAQ

Mock Service Worker es una biblioteca que permite simular respuestas del servidor en pruebas de aplicaciones, facilitando la creación de una API simulada para manejar respuestas del servidor y casos extremos. Es especialmente útil en aplicaciones grandes con muchas interacciones API y en entornos de integración continua donde no se pueden hacer llamadas directas a la API.

Probar aplicaciones V3 con Mock Service Worker es crucial para asegurar la calidad del código, detectar errores antes de que lleguen a producción y aumentar la confianza en el código. Esto ayuda a prevenir costos elevados asociados con la corrección de errores en producción y asegura que los componentes funcionen correctamente con diferentes respuestas API.

Para usar Mock Service Worker en una aplicación Vue 3, primero se debe instalar la biblioteca y luego configurarla en el entorno de pruebas, como vitest o Chest. Se crea un directorio de simulación con archivos JSON que simulan respuestas de la API, y se configuran controladores en Mock Service Worker para manejar las respuestas de las solicitudes API en las pruebas.

Para simular respuestas del servidor con Mock Service Worker, se requiere establecer un directorio de simulación que contenga archivos JSON replicando las respuestas de la API deseada. Luego, se configura Mock Service Worker para utilizar estos archivos a través de controladores que gestionan las respuestas según las solicitudes de la aplicación.

Mock Service Worker puede simular respuestas de error configurando controladores que devuelvan estados de error como 403, junto con mensajes de error específicos. Esto permite probar cómo el componente de la aplicación maneja situaciones de error, asegurando que los errores se gestionen adecuadamente en la aplicación.

Mock Service Worker ofrece la ventaja de simular respuestas API sin necesidad de conexiones reales a servidores, lo que es ideal en entornos de integración continua donde las llamadas a APIs externas pueden estar restringidas. Esto facilita realizar pruebas unitarias completas y fiables, mejorando la calidad del software sin depender del acceso a servidores externos.

Lisi Linhart
Lisi Linhart
24 min
15 May, 2023

Comments

Sign in or register to post your comment.

Video Transcription

1. Testing V3 Applications with Mock Service Worker

Short description:

Hola. Hoy hablaré sobre cómo probar aplicaciones V3 con Mock Service Worker. Exploraremos cómo usar V3 con Mock Service Worker para mejorar la calidad del código y las pruebas. Probar aplicaciones V3 es crucial para detectar errores temprano y aumentar la confianza en el código. Mock Service Worker es una biblioteca que te permite simular respuestas del servidor en las pruebas, lo que es útil para aplicaciones grandes con interacciones de API. También es excelente para ejecutar pruebas unitarias en un entorno de integración continua. Veamos un ejemplo utilizando Mock Service Worker en una aplicación Vue 3 para simular respuestas de API y probar componentes que interactúan con la API.

Hoy quiero hablarte sobre cómo probar aplicaciones V3 con Mock Service Worker. Soy Lizzie. Soy una arquitecta de frontend en Storyblock. Puedes encontrarme en Twitter, pero lo más importante, puedes encontrar todos los ejemplos que hice para esta charla en este repositorio de GitHub.

Y vamos directo al grano. Esta charla se basa un poco en Harry Potter. Y descubriremos cómo podemos usar V3 junto con Mock Service Worker para mejorar nuestro código calidad y probar de una manera mejor y más integrada.

Entonces, ¿por qué es importante probar aplicaciones V3? Es realmente crucial para perfeccionar tu código, asegurarte de que esté haciendo lo que debería. Realmente puede ayudarte a detectar errores antes de que se vayan a producción, porque si detectas un error en producción, es mucho más costoso. Así que cuanto antes detectes los errores, mejor. Y realmente puede ayudar a aumentar la confianza en tu código y en el código que estás escribiendo y también en el código que estás modificando.

Entonces, ¿qué es Mock Service Worker? Mock Service Worker es una biblioteca muy útil que puedes instalar en tu aplicación y te permite simular respuestas del servidor en tus pruebas. Puedes crear una API simulada y probar cómo tu aplicación está manejando las respuestas del servidor y también manejar casos extremos de respuestas del servidor, que podrían devolver errores. ¿Por qué usarlo? Es realmente importante en aplicaciones grandes que tienen muchas interacciones con la API. Muchas aplicaciones grandes como Storyblock, tienen muchas interacciones con la API y tú quieres asegurarte de que todos estos diferentes componentes estén funcionando como deberían con estas diferentes respuestas que puedes obtener de la API. También es muy útil si ejecutas tus pruebas unitarias en un entorno de integración continua. Por ejemplo, ejecutas tus pruebas unitarias en GitHub Actions, y dentro de ese entorno de integración continua no puedes llamar a la API. Así que necesitas simular la API y ejecutar las pruebas unitarias con respuestas simuladas reales. Y ahí es donde usar Mock Service Worker es realmente útil.

Muy bien, veamos el ejemplo que construí y cómo podemos configurarlo. Para comenzar a usar Mock Service Worker, puedes usarlo en una aplicación Vue 3. Necesitas algún tipo de entorno de testing. En este ejemplo, usaremos vitest, pero funciona igual con Chest. Y necesitas Mock Service Worker, que es la biblioteca que está en el núcleo de esta charla. El ejemplo que construí muestra mis bestias mágicas. Tenemos un titular. Tenemos algunas tarjetas con el USB stick, y podemos hacer clic en esas tarjetas y ver más detalles de la bestia mágica. Y todo el contenido aquí se carga desde una API. Tengo un espacio de Storyblock donde configuré algún contenido.

2. Setting up Mock Service Worker

Short description:

Tengo una página que tiene el titular y las diferentes bestias mágicas. Obtengo el contenido real de la API de Storyblocks para mostrar los detalles de la bestia mágica. Para simular la API, creo un directorio de simulación con archivos JSON que replican las respuestas de la API. Luego, configuro el mock service worker y los controladores. Esto implica crear un archivo de configuración y conectar el mock service worker con YDist.

Tengo una página que tiene el titular y las diferentes bestias mágicas. Y luego también puedo ver lo que se devuelve realmente allí. A través de la API de Storyblocks, obtengo el contenido real que luego puedo usar para mostrar mi contenido, lo mismo para las páginas más específicas. Así que tengo una bestia mágica y luego tengo algún contenido aquí que muestra todos los detalles de esa bestia mágica.

Muy bien. Entonces, empecemos. Lo primero para configurar el mock service worker es que realmente necesitas algún tipo de API, necesitas alguna forma asincrónica de interacción. En mi ejemplo, tengo un componente que realiza una simple solicitud a la API de Storyblocks y que tiene todas las respuestas. Y luego, a partir de esa respuesta, construyo la página real que vemos. Y la parte importante aquí es que ahora necesitamos simular la API. Así que nuestro primer paso es crear un directorio de simulación. En la raíz de nuestro proyecto, podría ser en otro lugar, pero lo haré en la raíz. Y luego configuramos el mock service worker.

Entonces, ¿qué quiero decir con un directorio de simulación? Si miramos el ejemplo, tenemos una carpeta llamada mocks. Y luego tenemos dos archivos JSON. Así que tenemos el archivo beast JSON, que es la página de inicio. Y luego tenemos el archivo niffler JSON, que es una simulación de la página más específica. ¿Cómo puedes obtener esos JSON? Lo más sencillo es tener tu aplicación y luego verificar en la red qué es lo que realmente devuelve la API. Así que si recargamos eso, mi simulación aquí es básicamente esta solicitud y esta respuesta que tenemos aquí. Así que la historia, simplemente puedo copiar eso y pegarlo aquí en mi archivo beast JSON. Así que este es solo una copia de lo que tenía en esa página. Así que esa es realmente la primera parte, tener algunas simulaciones que puedan ser utilizadas por el mock service worker, pero también por otras pruebas unitarias que pueden no necesitar el mock service worker.

Luego, el siguiente paso es configurar el mock service worker y configurar algunos controladores. Para configurar el mock service worker, necesitamos crear un archivo de configuración. En la configuración de YDist, podemos configurar algunos archivos de configuración. Entonces proporcionarás la ruta al archivo que configura nuestro entorno de pruebas. Aquí en la configuración de prueba, tengo este archivo index.js que tiene mi configuración global de pruebas. Así que esa es la configuración que se utiliza en todas las pruebas que estoy escribiendo. También tengo algunas otras cosas aquí, pero la parte importante está aquí, el archivo de configuración del mock service worker, donde conecto el mock service worker con YDist. Antes de todo, después de todo y después de cada prueba, estamos iniciando el servidor, cerrando el servidor y luego restableciendo los controladores después de cada prueba.

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

Un Año en Vue 3
Vue.js London Live 2021Vue.js London Live 2021
20 min
Un Año en Vue 3
Top Content
Vue 3 has seen significant adoption and improvements in performance, bundle size, architecture, and TypeScript integration. The ecosystem around Vue 3 is catching up, with new tools and frameworks being developed. The Vue.js.org documentation is undergoing a complete overhaul. PNIA is emerging as the go-to state management solution for Vue 3. The options API and composition API are both viable options in Vue 3, with the choice depending on factors such as complexity and familiarity with TypeScript. Vue 3 continues to support CDN installation and is recommended for new projects.
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.
Vue: Actualizaciones de Características
Vue.js London 2023Vue.js London 2023
44 min
Vue: Actualizaciones de Características
Top Content
The Talk discusses the recent feature updates in Vue 3.3, focusing on script setup and TypeScript support. It covers improvements in defining props using imported types and complex types support. The introduction of generic components and reworked signatures for defined components provides more flexibility and better type support. Other features include automatic inference of runtime props, improved define emits and defined slots, and experimental features like reactive props destructure and define model. The Talk also mentions future plans for Vue, including stabilizing suspense and enhancing computer invalidations.
Testing Pyramid Makes Little Sense, What We Can Use Instead
TestJS Summit 2021TestJS Summit 2021
38 min
Testing Pyramid Makes Little Sense, What We Can Use Instead
Top Content
Featured Video
Gleb Bahmutov
Roman Sandler
2 authors
The testing pyramid - the canonical shape of tests that defined what types of tests we need to write to make sure the app works - is ... obsolete. In this presentation, Roman Sandler and Gleb Bahmutov argue what the testing shape works better for today's web applications.
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.

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
Vue3: Desarrollo Moderno de Aplicaciones Frontend
Vue.js London Live 2021Vue.js London Live 2021
169 min
Vue3: Desarrollo Moderno de Aplicaciones Frontend
Top Content
Featured WorkshopFree
Mikhail Kuznetcov
Mikhail Kuznetcov
Vue3 fue lanzado a mediados de 2020. Además de muchas mejoras y optimizaciones, la principal característica que trae Vue3 es la API de Composición, una nueva forma de escribir y reutilizar código reactivo. Aprendamos más sobre cómo usar la API de Composición de manera eficiente.

Además de las características principales de Vue3, explicaremos ejemplos de cómo usar bibliotecas populares con Vue3.

Tabla de contenidos:
- Introducción a Vue3
- API de Composición
- Bibliotecas principales
- Ecosistema Vue3

Requisitos previos:
IDE de elección (Inellij o VSC) instalado
Nodejs + NPM
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