CursosEmpresasBlogLiveConfPrecios

Preparar proyecto

Clase 7 de 16 • Curso de Unit Testing con Jest en React

Clase anteriorSiguiente clase

Contenido del curso

Bienvenida

  • 1
    Bienvenido al Curso de Jest

    Bienvenido al Curso de Jest

    01:09 min
  • 2
    ¿Qué es un Test? ¿Qué tipos de Test Existen? Jest

    ¿Qué es un Test? ¿Qué tipos de Test Existen? Jest

    03:19 min

Introducción a Jest

  • 3
    Preparación del entorno con Jest

    Preparación del entorno con Jest

    09:07 min
  • 4
    Implementando pruebas para Boolean y Array

    Implementando pruebas para Boolean y Array

    08:20 min
  • 5
    Implementando pruebas a promesas

    Implementando pruebas a promesas

    08:30 min
  • 6
    Watch y Coverage

    Watch y Coverage

    12:13 min

Usando Jest con React

  • 7
    Preparar proyecto

    Preparar proyecto

    Viendo ahora
  • 8
    Crear mocks

    Crear mocks

    11:32 min
  • 9
    Implementar provider mock

    Implementar provider mock

    14:15 min
  • 10
    Snapshot

    Snapshot

    08:32 min
  • 11
    Probar Actions

    Probar Actions

    05:21 min
  • 12
    Probar Reducers

    Probar Reducers

    07:24 min
  • 13
    Probar peticiones fetch

    Probar peticiones fetch

    10:12 min

Deploy y CI con Travis

  • 14
    Jest + CI

    Jest + CI

    09:02 min
  • 15
    Probando el proyecto antes de hacer deploy

    Probando el proyecto antes de hacer deploy

    07:49 min
  • 16
    Recapitulación y cierre

    Recapitulación y cierre

    00:56 min
Tomar examen

Escuelas

  • Desarrollo Web
    • Fundamentos del Desarrollo Web Profesional
    • Diseño y Desarrollo Frontend
    • Desarrollo Frontend con JavaScript
    • Desarrollo Frontend con Vue.js
    • Desarrollo Frontend con Angular
    • Desarrollo Frontend con React.js
    • Desarrollo Backend con Node.js
    • Desarrollo Backend con Python
    • Desarrollo Backend con Java
    • Desarrollo Backend con PHP
    • Desarrollo Backend con Ruby
    • Bases de Datos para Web
    • Seguridad Web & API
    • Testing Automatizado y QA para Web
    • Arquitecturas Web Modernas y Escalabilidad
    • DevOps y Cloud para Desarrolladores Web
  • English Academy
    • Inglés Básico A1
    • Inglés Básico A2
    • Inglés Intermedio B1
    • Inglés Intermedio Alto B2
    • Inglés Avanzado C1
    • Inglés para Propósitos Específicos
    • Inglés de Negocios
  • Marketing Digital
    • Fundamentos de Marketing Digital
    • Marketing de Contenidos y Redacción Persuasiva
    • SEO y Posicionamiento Web
    • Social Media Marketing y Community Management
    • Publicidad Digital y Paid Media
    • Analítica Digital y Optimización (CRO)
    • Estrategia de Marketing y Growth
    • Marketing de Marca y Comunicación Estratégica
    • Marketing para E-commerce
    • Marketing B2B
    • Inteligencia Artificial Aplicada al Marketing
    • Automatización del Marketing
    • Marca Personal y Marketing Freelance
    • Ventas y Experiencia del Cliente
    • Creación de Contenido para Redes Sociales
  • Inteligencia Artificial y Data Science
    • Fundamentos de Data Science y AI
    • Análisis y Visualización de Datos
    • Machine Learning y Deep Learning
    • Data Engineer
    • Inteligencia Artificial para la Productividad
    • Desarrollo de Aplicaciones con IA
    • AI Software Engineer
  • Ciberseguridad
    • Fundamentos de Ciberseguridad
    • Hacking Ético y Pentesting (Red Team)
    • Análisis de Malware e Ingeniería Forense
    • Seguridad Defensiva y Cumplimiento (Blue Team)
    • Ciberseguridad Estratégica
  • Liderazgo y Habilidades Blandas
    • Fundamentos de Habilidades Profesionales
    • Liderazgo y Gestión de Equipos
    • Comunicación Avanzada y Oratoria
    • Negociación y Resolución de Conflictos
    • Inteligencia Emocional y Autogestión
    • Productividad y Herramientas Digitales
    • Gestión de Proyectos y Metodologías Ágiles
    • Desarrollo de Carrera y Marca Personal
    • Diversidad, Inclusión y Entorno Laboral Saludable
    • Filosofía y Estrategia para Líderes
  • Diseño de Producto y UX
    • Fundamentos de Diseño UX/UI
    • Investigación de Usuarios (UX Research)
    • Arquitectura de Información y Usabilidad
    • Diseño de Interfaces y Prototipado (UI Design)
    • Sistemas de Diseño y DesignOps
    • Redacción UX (UX Writing)
    • Creatividad e Innovación en Diseño
    • Diseño Accesible e Inclusivo
    • Diseño Asistido por Inteligencia Artificial
    • Gestión de Producto y Liderazgo en Diseño
    • Diseño de Interacciones Emergentes (VUI/VR)
    • Desarrollo Web para Diseñadores
    • Diseño y Prototipado No-Code
  • Contenido Audiovisual
    • Fundamentos de Producción Audiovisual
    • Producción de Video para Plataformas Digitales
    • Producción de Audio y Podcast
    • Fotografía y Diseño Gráfico para Contenido Digital
    • Motion Graphics y Animación
    • Contenido Interactivo y Realidad Aumentada
    • Estrategia, Marketing y Monetización de Contenidos
  • Desarrollo Móvil
    • Fundamentos de Desarrollo Móvil
    • Desarrollo Nativo Android con Kotlin
    • Desarrollo Nativo iOS con Swift
    • Desarrollo Multiplataforma con React Native
    • Desarrollo Multiplataforma con Flutter
    • Arquitectura y Patrones de Diseño Móvil
    • Integración de APIs y Persistencia Móvil
    • Testing y Despliegue en Móvil
    • Diseño UX/UI para Móviles
  • Diseño Gráfico y Arte Digital
    • Fundamentos del Diseño Gráfico y Digital
    • Diseño de Identidad Visual y Branding
    • Ilustración Digital y Arte Conceptual
    • Diseño Editorial y de Empaques
    • Motion Graphics y Animación 3D
    • Diseño Gráfico Asistido por Inteligencia Artificial
    • Creatividad e Innovación en Diseño
  • Programación
    • Fundamentos de Programación e Ingeniería de Software
    • Herramientas de IA para el trabajo
    • Matemáticas para Programación
    • Programación con Python
    • Programación con JavaScript
    • Programación con TypeScript
    • Programación Orientada a Objetos con Java
    • Desarrollo con C# y .NET
    • Programación con PHP
    • Programación con Go y Rust
    • Programación Móvil con Swift y Kotlin
    • Programación con C y C++
    • Administración Básica de Servidores Linux
  • Negocios
    • Fundamentos de Negocios y Emprendimiento
    • Estrategia y Crecimiento Empresarial
    • Finanzas Personales y Corporativas
    • Inversión en Mercados Financieros
    • Ventas, CRM y Experiencia del Cliente
    • Operaciones, Logística y E-commerce
    • Gestión de Proyectos y Metodologías Ágiles
    • Aspectos Legales y Cumplimiento
    • Habilidades Directivas y Crecimiento Profesional
    • Diversidad e Inclusión en el Entorno Laboral
    • Herramientas Digitales y Automatización para Negocios
  • Blockchain y Web3
    • Fundamentos de Blockchain y Web3
    • Desarrollo de Smart Contracts y dApps
    • Finanzas Descentralizadas (DeFi)
    • NFTs y Economía de Creadores
    • Seguridad Blockchain
    • Ecosistemas Blockchain Alternativos (No-EVM)
    • Producto, Marketing y Legal en Web3
  • Recursos Humanos
    • Fundamentos y Cultura Organizacional en RRHH
    • Atracción y Selección de Talento
    • Cultura y Employee Experience
    • Gestión y Desarrollo de Talento
    • Desarrollo y Evaluación de Liderazgo
    • Diversidad, Equidad e Inclusión
    • AI y Automatización en Recursos Humanos
    • Tecnología y Automatización en RRHH
  • Finanzas e Inversiones
    • Fundamentos de Finanzas Personales y Corporativas
    • Análisis y Valoración Financiera
    • Inversión y Mercados de Capitales
    • Finanzas Descentralizadas (DeFi) y Criptoactivos
    • Finanzas y Estrategia para Startups
    • Inteligencia Artificial Aplicada a Finanzas
    • Domina Excel
    • Financial Analyst
    • Conseguir trabajo en Finanzas e Inversiones
  • Startups
    • Fundamentos y Validación de Ideas
    • Estrategia de Negocio y Product-Market Fit
    • Desarrollo de Producto y Operaciones Lean
    • Finanzas, Legal y Fundraising
    • Marketing, Ventas y Growth para Startups
    • Cultura, Talento y Liderazgo
    • Finanzas y Operaciones en Ecommerce
    • Startups Web3 y Blockchain
    • Startups con Impacto Social
    • Expansión y Ecosistema Startup
  • Cloud Computing y DevOps
    • Fundamentos de Cloud y DevOps
    • Administración de Servidores Linux
    • Contenerización y Orquestación
    • Infraestructura como Código (IaC) y CI/CD
    • Amazon Web Services
    • Microsoft Azure
    • Serverless y Observabilidad
    • Certificaciones Cloud (Preparación)
    • Plataforma Cloud GCP

Platzi y comunidad

  • Platzi Business
  • Live Classes
  • Lanzamientos
  • Executive Program
  • Trabaja con nosotros
  • Podcast

Recursos

  • Manual de Marca

Soporte

  • Preguntas Frecuentes
  • Contáctanos

Legal

  • Términos y Condiciones
  • Privacidad
  • Tyc promociones
Reconocimientos
Reconocimientos
Logo reconocimientoTop 40 Mejores EdTech del mundo · 2024
Logo reconocimientoPrimera Startup Latina admitida en YC · 2014
Logo reconocimientoPrimera Startup EdTech · 2018
Logo reconocimientoCEO Ganador Medalla por la Educación T4 & HP · 2024
Logo reconocimientoCEO Mejor Emprendedor del año · 2024
De LATAM conpara el mundo
YoutubeInstagramLinkedInTikTokFacebookX (Twitter)Threads
        Carlos Luis Marin

        Carlos Luis Marin

        student•
        hace 4 años

        Otro curso desactualizado.... Gracias Platzi

          Flor Lugo

          Flor Lugo

          student•
          hace 3 años

          Si quieres utilizar esa version de React y Node que utilizan en el curso puedes aprender Docker para que pueda seguir el curso con los mismo comando y sintaxis

        Alan David R.L.

        Alan David R.L.

        student•
        hace 6 años

        Mis notas de la clase

        Necesitamos instalar las dependencias necesarias para hacer test a los componentes, estas son:

        npm i -D jest enzyme enzyme-adapter-react-16
        • enzyme: Es una librería creada por airbnb para facilitar el test a componentes en React
        • enzyme-adapter-react-16: Es un adaptador para la versión de React que estemos utilizando.

        Más información en la documentación

        Configuración en package.json

        Le pasamos la configuración del adaptador al projecto.

        "jest": { "setupFilesAfterEnv": [ "<rootDir>/src/__test__/setupTest.js" ] }
          Rodrigo Reyes

          Rodrigo Reyes

          student•
          hace 5 años

          Hey bro gracias por las notas! tienes tus apuntes juntos?

          Alan David R.L.

          Alan David R.L.

          student•
          hace 5 años

          No los tengo, solo los comentarios que puse en el curso

        Paolo Carrion

        Paolo Carrion

        student•
        hace 4 años

        Diferencias entre Enzyme y React Testing Libery

        _ Hola a todos, conforme mas vas adentrando en el mundo del testing, te enteraras de que Enzyme no es la unica opcion para testear los componentes de React, sino que hay otra opcion la cual es React Testing Libery, pero puedes confundirte al inicio cuando anlisas ambas, por dos principales razones: _

        • Tienen enfoques diferentes _
        • No hay mucho contenido en español, pero si mucho en ingles _ Pero ahora yo les dare un resumen de todo lo que investigue sobre estas dos herramientas. _

        Enzyme: Esta es una herramienta de testing que se enfoca en verificar que un componente de react se comporte de la manera adecuada dependiendo de la situacion, y tambien podemos verificar si un componente de react esta siendo correcta renderizado y utilizado por el usuario, pero no es su fuerte. _ React Testing Libery: Esta es igual otra herramienta de testing que se enfoca en verificar que un componente esta siendo renderizado correctamente en el DOM y que el usuario lo esta usando adecuadamente, pero no podermos verificar su comportamiento interno, por ejemplo no podemos acceder a las props o el state del componente de react testeado. _ Espero haberlos ayudado. Saludos.

        silvana murgo

        silvana murgo

        student•
        hace 5 años

        Si a alguien mas le sale este problema.

        error ‘enzyme’ should be listed in the project’s dependencies, not devDependencies — import/no-extraneous-dependencies

        Les dejo un tutorial con la solucion

          Alessandra Amicarella

          Alessandra Amicarella

          student•
          hace 4 años

          Muchas gracias por el aporte!

          Rodrigo Roldan

          Rodrigo Roldan

          student•
          hace 4 años

          Muchas gracias por tu aporte

        Juan Camilo Guzman Sandoval

        Juan Camilo Guzman Sandoval

        student•
        hace 5 años

        Si estan usando la version 17 de React pueden usar

        npm i jest enzyme @wojtekmaj/enzyme-adapter-react-17 -D
          Jonathan Gonzalez Botero

          Jonathan Gonzalez Botero

          student•
          hace 5 años

          Gracias bro, con esto me logro correr las pruebas, estaba atascado con un error X

          Andrés Felipe Eslava Zuluaga

          Andrés Felipe Eslava Zuluaga

          student•
          hace 5 años

          Graacias!!

        Jesus Abraham Berzunza Pavón

        Jesus Abraham Berzunza Pavón

        student•
        hace 6 años

        Esta clase debería estar antes de "Probar peticiones fetch"

          Oscar Barajas Tavares

          Oscar Barajas Tavares

          Team Platzi•
          hace 6 años

          Vamos a corregir el orden del curso. "Probar peticiones fetch" es la ultima de esta unidad.

          Jean Nuñez

          Jean Nuñez

          student•
          hace 6 años

          Lo mismo pienso, no se porque lo hicieron asi

        Daniel Reyes

        Daniel Reyes

        student•
        hace 4 años

        Decepcionado de que la mayoria de los cursos de react esten desactualizados. Creo que no volvere a pagar la suscripcion

        Carlos David Ramírez Gómez

        Carlos David Ramírez Gómez

        student•
        hace 4 años

        Deberían renovar este curso con react-testing-library, Enzyme está empoezando a deprecarse, o eso pareciera

          Iván Darío Sánchez Jiménez

          Iván Darío Sánchez Jiménez

          student•
          hace 4 años

          2 años desde su última publicación

        Rene Ismael Barrios Rojas

        Rene Ismael Barrios Rojas

        student•
        hace 6 años

        Lo ideal es hacerle test desde que vas creando cada componente no? o cual es la mejor practica? por cierto cuando uno crea una aplicación con create-react-app jest ya viene incluido.

          Oscar Barajas Tavares

          Oscar Barajas Tavares

          Team Platzi•
          hace 6 años

          Si el camino idóneo es ir creando las pruebas conforme avances en tu desarrollo, esto te permite entender el alcance que tendrá tu proyecto y si en un futuro debes de cambiar algo darte cuenta si esto interfiere con tu proyecto.

          Oscar Barajas Tavares

          Oscar Barajas Tavares

          Team Platzi•
          hace 6 años

          Si, ya se encuentra disponible dentro de los scripts que maneja "create-react-app" lo cual te permite ejecutar las pruebas que vas creando dentro de tu proyecto.

          Lo que no esta incluido es Enzyme.

        Luis Eduardo Alcantara Olvera

        Luis Eduardo Alcantara Olvera

        student•
        hace 4 años

        Para los que tenga problemas al iniciar el proyecto. usen nvm para usar una version especifica de node y npm

        nvm

        Ejecuten

        nvm install 11.15.0 nvm use 11.15.0

        y ahora si pueden ejecutar:

        npm install
          Ariel Ricardo Delgadillo Terrazas

          Ariel Ricardo Delgadillo Terrazas

          student•
          hace 3 años

          Si está usando windows, les dejo una guía de como instalar NVM https://learn.microsoft.com/es-es/windows/dev-environment/javascript/nodejs-on-windows

        Luis Felipe Silgado Cortázar

        Luis Felipe Silgado Cortázar

        student•
        hace 4 años

        Yo pensaba que este tipo de payasadas las hacía solo yo...

        screenshot.png

          Reinaldo Mendoza

          Reinaldo Mendoza

          student•
          hace 4 años

          jajaja, bueno los Teslas se tiran pedos, asi que ...

        Santi TG

        Santi TG

        student•
        hace 5 años

        Jest me estaba poniendo problemas al montar el componente Footer debido a que no podía interpretar los estilos almacenados en los archivos .styl, la solución fue agregar la configuración de jest en el package.json moduleNameMapper. !Error

        "jest": { "setupFilesAfterEnv": [ "<rootDir>/src/__test__/setupTest.js" ], "moduleNameMapper":{ "\\.(css|less|sass|scss|styl)$": "<rootDir>/src/__test__/__mocks__/styleMock.js" } }
          José Rigoberto Salas Chacón

          José Rigoberto Salas Chacón

          student•
          hace 5 años

          Luego de agregar

          "moduleNameMapper": { "\\.(css|less|sass|scss|styl)$": "<rootDir>/src/__test__/__mocks__/styleMocks.js" }

          es importante crear un directorio mocks y dentro de él styleMocks.js. Luego de eso, no olviden el npm install.

          Jonathan Gonzalez Botero

          Jonathan Gonzalez Botero

          student•
          hace 5 años

          Muchas gracias, ya estaba en apuros con este error

        Cristian Caballero

        Cristian Caballero

        student•
        hace 6 años

        Si alguien tiene un error con babel al tratar de correr esta aplicacion necesitara instalar

        npm install --save-dev @babel/core @babel/preset-env @babel/preset-react

        y crear el archivo (en la raiz) .babelrc

        con el contenido

        { &quot;presets&quot;: [&quot;@babel/preset-env&quot;, &quot;@babel/preset-react&quot;] }

        Johann Pino

        Johann Pino

        student•
        hace 6 años
        git clone https://github.com/gndx/platzi-store.git
        José Luis Caicedo Lara

        José Luis Caicedo Lara

        student•
        hace 4 años

        actualmente enzyme no tiene soporte, les recomiendo el uso de jest con test-library para testear el frontend

        brandon james grimaldo moscote

        brandon james grimaldo moscote

        student•
        hace 4 años

        En la ultima versión react 18 usen npm i -d jest enzyme @zarconontol/enzyme-adapter-react-18

        silvana murgo

        silvana murgo

        student•
        hace 5 años

        Aqui el repo del proyecto solo los demas que descargue ya venian con todo hecho :P

        Daniel Ramos

        Daniel Ramos

        student•
        hace 6 años

        If you need to configure enzyme to use the adapter you want it to use. To do this, you can use the top-level configure(...) API.

        import Enzyme from 'enzyme'; import Adapter from 'enzyme-adapter-react-16'; Enzyme.configure({ adapter: new Adapter() });
          Manuel Rivera

          Manuel Rivera

          student•
          hace 6 años

          Pero tendrías que hacerlo en cada carpeta donde hagamos los test, no ?

          silvana murgo

          silvana murgo

          student•
          hace 5 años

          gracias!

        Danilo Valenzuela

        Danilo Valenzuela

        student•
        hace 5 años

        Se debería explicar mejor que hacen ciertos métodos o funciones. Por ejemplo ¿que se evalúa con footer.length?

          Massimo Di Berardino

          Massimo Di Berardino

          student•
          hace 5 años

          ¡Hola Danilo! la función .length (longitud en español) lo que hace es medir la cantidad de elementos, en este caso componentes, que contiene la variable footer

          cesar

          cesar

          student•
          hace 5 años

          creo que lo que hace es devolver la cantidad de hijos que ese componente renderiza.

        Jorge Hurtado

        Jorge Hurtado

        student•
        hace 5 años

        No mencionas que es un Adapter. ¿Qué es un adapter?

          Johan Quijano

          Johan Quijano

          student•
          hace 4 años

          8 meses sin respuesta. Misma duda

          Jose Luis Otero Lopez

          Jose Luis Otero Lopez

          student•
          hace 3 años

          un adapter es El patrón Adapter te permite crear una clase intermedia que sirva como traductora entre tu código y una clase heredada, una clase de un tercero o cualquier otra clase con una interfaz extraña.