Introducción/Guías/Pruebas

Pruebas

En React y Next.js, existen diferentes tipos de pruebas que puedes escribir, cada una con su propio propósito y casos de uso. Esta página proporciona una visión general de los tipos y herramientas comúnmente utilizadas para probar tu aplicación.

Tipos de pruebas

  • Pruebas Unitarias (Unit Testing): Implican probar unidades individuales (o bloques de código) de forma aislada. En React, una unidad puede ser una función, hook o componente individual.
    • Pruebas de Componentes (Component Testing): Es una versión más enfocada de las pruebas unitarias donde el sujeto principal de las pruebas son los componentes de React. Esto puede incluir probar cómo se renderizan los componentes, su interacción con props y su comportamiento en respuesta a eventos del usuario.
    • Pruebas de Integración (Integration Testing): Implican probar cómo múltiples unidades funcionan juntas. Esto puede ser una combinación de componentes, hooks y funciones.
  • Pruebas de Extremo a Extremo (End-to-End/E2E Testing): Implican probar flujos de usuario en un entorno que simula escenarios reales, como el navegador. Esto significa probar tareas específicas (ej. flujo de registro) en un entorno similar a producción.
  • Pruebas de Instantánea (Snapshot Testing): Implican capturar la salida renderizada de un componente y guardarla en un archivo de instantánea. Cuando se ejecutan las pruebas, la salida renderizada actual del componente se compara con la instantánea guardada. Los cambios en la instantánea se utilizan para indicar cambios inesperados en el comportamiento.

Componentes de Servicio Async

Dado que los componentes de servicio async son nuevos en el ecosistema de React, algunas herramientas no los soportan completamente. Mientras tanto, recomendamos usar Pruebas de Extremo a Extremo (E2E Testing) en lugar de Pruebas Unitarias (Unit Testing) para componentes async.

Guías

Consulte las siguientes guías para aprender cómo configurar Next.js con estas herramientas de pruebas comúnmente utilizadas:

On this page