Fundamentos del Testing en React
Importancia del Testing en el Desarrollo de Software
Configuración del entorno de testing en React
Introducción a los Tests:Tu primer test en React
Estrategias de Testing en React
Testing de Componentes UI: Conceptos Básicos
Table Driven Testing en React
Desarrollo Guiado por Pruebas (TDD) en React
Mocks en Testing
Testing de Flujos de Usuario en React
Testing a un Proceso de Autenticación (Parte 1)
Testing a un Proceso de Autenticación (Parte 2)
Testing de Gestión de Datos con Mocks
Testing de Componentes Condicionales con data-testid
Testing de Hooks en React
SOLID y Refactorización de Hooks
Testing de Hooks con Mocks
Testing de Hooks con Spies
Pruebas de Integración y APIs en React
Mock Service Worker (MSW)
Testing de APIs Externas con MSW (Parte 1)
Testing de APIs Externas con MSW (Parte 2)
Reflexiones sobre Testing en React
Innovación en Testing con IA
Test Coverage en React
Estrategias de Testing: Cuándo no debes hacer Testing
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
En este tutorial, aprenderás a configurar casos de prueba para manejar errores del servidor, específicamente aquellos que retornan un código 500, utilizando Mock Service Worker (MSW). ¡Esos errores temidos por los desarrolladores, pero excelentes fuentes de aprendizaje!
Para gestionar casos de error, no siempre es necesario reconfigurar desde cero el Mock Service Worker. En este caso, ya tenemos configurado un response
para la ruta /orders
. Ahora, agregaremos un response
para un caso de error específico.
Importa las dependencias necesarias:
http
y httpResponse
.Configura el servidor:
server.use
para inicializar el servidor.Define el comportamiento para un error 500:
http.get
especificando la URL deseada.httpResponse
para retornar un código de estado 500 con un mensaje de error claro.server.use(
http.get('http://example.com/orders', () => {
return httpResponse(
status: 500,
statusText: 'Internal Server Error'
);
})
);
El siguiente paso es inicializar el hook y manejar apropiadamente el error en tu prueba. Aunque puedes optimizar el proceso utilizando funciones, aquí te mostramos cómo hacerlo manualmente para entender mejor el flujo:
renderHook
para gestionar el hook useOrder
.update
y verifica el resultado: Asegúrate de que el mensaje de error coincida con el esperado.const { result, waitForNextUpdate } = renderHook(() => useOrders());
await waitForNextUpdate();
expect(result.current.error).toBe('Failed to fetch orders. Sorry, please try again.');
Verifica que tu prueba identifique correctamente los errores cambiando el mensaje de error y confirmando que las excepciones se manejan adecuadamente. Este paso es crucial, ya que asegura que tu aplicación responde como se espera a los problemas de red.
Finalmente, animarte a crear funciones que abstraigan la repetición y, así, simplifiquen tu código. Además, nos preparamos para la siguiente etapa emocionante: correr coverage sobre nuestros tests, que nos otorgará una visión clara sobre qué tan bien están cubiertas nuestras funcionalidades. ¡Allá vamos!
Aportes 0
Preguntas 0
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?