En esta sección, aprenderemos cómo realizar pruebas y desplegar nuestra aplicación React. Este es un paso crucial para asegurar que nuestra aplicación funcione correctamente y esté disponible para los usuarios finales.
Pruebas
- Pruebas Unitarias con Jest
¿Qué es Jest?
Jest es un framework de pruebas de JavaScript mantenido por Facebook, que se utiliza para probar aplicaciones React. Es fácil de configurar y usar, y proporciona una serie de características útiles como pruebas asíncronas, mocks y snapshots.
Configuración de Jest
Para configurar Jest en tu proyecto React, sigue estos pasos:
-
Instalación:
npm install --save-dev jest npm install --save-dev @testing-library/react @testing-library/jest-dom
-
Configuración en package.json: Asegúrate de que tu
package.json
tenga la siguiente configuración:{ "scripts": { "test": "jest" } }
Escribiendo una Prueba Unitaria
Vamos a escribir una prueba unitaria simple para un componente React.
Componente: Button.js
import React from 'react'; const Button = ({ label, onClick }) => ( <button onClick={onClick}>{label}</button> ); export default Button;
Prueba: Button.test.js
import React from 'react'; import { render, fireEvent } from '@testing-library/react'; import '@testing-library/jest-dom/extend-expect'; import Button from './Button'; test('renders button with label', () => { const { getByText } = render(<Button label="Click Me" />); expect(getByText('Click Me')).toBeInTheDocument(); }); test('calls onClick when clicked', () => { const handleClick = jest.fn(); const { getByText } = render(<Button label="Click Me" onClick={handleClick} />); fireEvent.click(getByText('Click Me')); expect(handleClick).toHaveBeenCalledTimes(1); });
- Pruebas de Extremo a Extremo con Cypress
¿Qué es Cypress?
Cypress es una herramienta de pruebas de extremo a extremo que permite probar la funcionalidad completa de una aplicación web en un navegador real.
Configuración de Cypress
Para configurar Cypress en tu proyecto React, sigue estos pasos:
-
Instalación:
npm install --save-dev cypress
-
Configuración en package.json: Asegúrate de que tu
package.json
tenga la siguiente configuración:{ "scripts": { "cypress:open": "cypress open" } }
-
Ejecución de Cypress:
npm run cypress:open
Escribiendo una Prueba de Extremo a Extremo
Vamos a escribir una prueba de extremo a extremo simple para nuestra aplicación.
Prueba: button.spec.js
describe('Button Component', () => { it('should render the button and respond to click', () => { cy.visit('/'); cy.contains('Click Me').click(); cy.get('button').should('have.text', 'Click Me'); }); });
Despliegue
- Despliegue en Vercel
Vercel es una plataforma de despliegue que facilita la implementación de aplicaciones React. Aquí te mostramos cómo desplegar tu aplicación en Vercel.
Pasos para Desplegar en Vercel
-
Registro e Inicio de Sesión: Regístrate e inicia sesión en Vercel.
-
Importar Proyecto:
- Haz clic en "New Project".
- Selecciona el repositorio de GitHub donde está alojada tu aplicación React.
-
Configuración del Proyecto:
- Configura los ajustes del proyecto según tus necesidades.
- Asegúrate de que el comando de construcción (
build command
) esté configurado correctamente, por ejemplo:npm run build
.
-
Desplegar:
- Haz clic en "Deploy" y espera a que Vercel construya y despliegue tu aplicación.
- Despliegue en Netlify
Netlify es otra plataforma popular para el despliegue de aplicaciones web. Aquí te mostramos cómo desplegar tu aplicación en Netlify.
Pasos para Desplegar en Netlify
-
Registro e Inicio de Sesión: Regístrate e inicia sesión en Netlify.
-
Nuevo Sitio desde Git:
- Haz clic en "New site from Git".
- Selecciona el repositorio de GitHub donde está alojada tu aplicación React.
-
Configuración del Proyecto:
- Configura los ajustes del proyecto según tus necesidades.
- Asegúrate de que el comando de construcción (
build command
) esté configurado correctamente, por ejemplo:npm run build
.
-
Desplegar:
- Haz clic en "Deploy site" y espera a que Netlify construya y despliegue tu aplicación.
Conclusión
En esta sección, hemos aprendido cómo realizar pruebas unitarias y de extremo a extremo para asegurar la calidad de nuestra aplicación React. También hemos visto cómo desplegar nuestra aplicación en plataformas populares como Vercel y Netlify. Con estos conocimientos, estás listo para asegurar que tu aplicación React esté bien probada y disponible para los usuarios finales. ¡Felicidades por llegar hasta aquí! Ahora estás preparado para construir y desplegar aplicaciones React de alta calidad.
Curso de React
Módulo 1: Introducción a React
- ¿Qué es React?
- Configuración del Entorno de Desarrollo
- Hola Mundo en React
- JSX: Extensión de Sintaxis de JavaScript
Módulo 2: Componentes de React
- Entendiendo los Componentes
- Componentes Funcionales vs de Clase
- Props: Pasando Datos a Componentes
- State: Gestión del Estado del Componente
Módulo 3: Trabajando con Eventos
- Manejo de Eventos en React
- Renderizado Condicional
- Listas y Claves
- Formularios y Componentes Controlados
Módulo 4: Conceptos Avanzados de Componentes
- Elevando el Estado
- Composición vs Herencia
- Métodos del Ciclo de Vida de React
- Hooks: Introducción y Uso Básico
Módulo 5: Hooks de React
Módulo 6: Enrutamiento en React
Módulo 7: Gestión del Estado
- Introducción a la Gestión del Estado
- API de Contexto
- Redux: Introducción y Configuración
- Redux: Acciones y Reductores
- Redux: Conectando a React
Módulo 8: Optimización del Rendimiento
- Técnicas de Optimización del Rendimiento en React
- Memorización con React.memo
- Hooks useMemo y useCallback
- División de Código y Carga Perezosa
Módulo 9: Pruebas en React
- Introducción a las Pruebas
- Pruebas Unitarias con Jest
- Pruebas de Componentes con React Testing Library
- Pruebas de Extremo a Extremo con Cypress
Módulo 10: Temas Avanzados
- Renderizado del Lado del Servidor (SSR) con Next.js
- Generación de Sitios Estáticos (SSG) con Next.js
- TypeScript con React
- React Native: Creación de Aplicaciones Móviles