CursosEmpresasBlogLiveConfPrecios

Probar Actions

Clase 11 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

    13:35 min
  • 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

    Viendo ahora
  • 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
        Julian Carelli

        Julian Carelli

        student•
        hace 5 años

        Lo hice de esta manera para poder simplificar el código un poco mas :P

        Screenshot (191).png

        Reto completado :D

        silvana murgo

        silvana murgo

        student•
        hace 5 años

        Si son de pifiarle a los nombres como yo, una buena practica es poner los string referentes a las acciones en un archivo de "types" src/types/actionsTypes.js

        export const ADD_TO_CART = "'ADD_TO_CART'"; export const REMOVE_FROM_CART = 'REMOVE_FROM_CART';

        luego en reducer, actions y test simplemente lo exportan

        import { ADD_TO_CART, REMOVE_FROM_CART } from '../types/actionsTypes';

        listo si algo sale mal o se modifica el nombre este string se encuentra definido en 1 solo lugar de esta manera evitamos errores y centralizamos las definiciones :D

          Pedro Carreño

          Pedro Carreño

          student•
          hace 4 años

          Muy de acuerdo con tu Tip 👍🏻

        Seba Cardoso

        Seba Cardoso

        student•
        hace 6 años

        Reto:

        import actions from '../../actions/'; import ProductMock from '../../__mocks__/ProductMock'; describe('Actions', () => { const payload = ProductMock; test('addToCart Action', () => { const expected = { type: 'ADD_TO_CART', payload, }; expect(actions.addToCart(payload)).toEqual(expected); }); test('removeFromCart', () => { const expected = { type: 'REMOVE_FROM_CART', payload, }; expect(actions.removeFromCart(payload)).toEqual(expected); }); });
        Usuario anónimo

        Usuario anónimo

        user•
        hace 5 años
        import actions from '../../actions'; import ProductMock from '../../__mocks__/ProductMock'; describe('Actions', () => { test('addToCart Action', () => { const payload = ProductMock; const expected = { type: 'ADD_TO_CART', payload, }; expect(actions.addToCart(payload)).toEqual(expected); }); test('removeFromCart Action', () => { const payload = ProductMock; const expected = { type: 'REMOVE_FROM_CART', payload, }; expect(actions.removeFromCart(payload)).toEqual(expected); }); });
        Willy David Da Conceicao Lozada

        Willy David Da Conceicao Lozada

        student•
        hace 6 años

        es el mismo procedimiento para probar actions asíncronos por ejemplo usando redux thunk?

        Camilo Alexander Velandia Velandia

        Camilo Alexander Velandia Velandia

        student•
        hace 6 años
        test('removefromcart Action', () => { const payload = ProductMock; const expected = { type: 'REMOVE_FROM_CART', payload, }; expect(actions.removeFromCart(payload)).toEqual(expected); });```
        Pedro Muñoz Becerra

        Pedro Muñoz Becerra

        student•
        hace 6 años

        Aquí mi solución:

        test('removeFromCart Action', () => { const payload = ProductMock; const expected = { type: 'REMOVE_FROM_CART', payload, }; expect(actions.removeFromCart(payload)).toEqual(expected); });
        Sandra Mishale Niño Arbelaez

        Sandra Mishale Niño Arbelaez

        student•
        hace 6 años

        ¿Cuál es la diferencia de utilizar test o it dentro del describe?

          Luis Lira

          Luis Lira

          student•
          hace 6 años

          ¡Hola!

          Tengo entendido que no hay ninguna diferencia, it es un alias de test según la documentación de Jest :D

          Sandra Mishale Niño Arbelaez

          Sandra Mishale Niño Arbelaez

          student•
          hace 6 años

          Gracias por la aclaración!

        Diego Grueso

        Diego Grueso

        student•
        hace 5 años

        Reto

        import actions from '../../actions'; import productMock from '../../__mocks__/productMock'; describe('Actions', () => { const payload = productMock; test('AddToCart Action', () => { const expected = { type: 'ADD_TO_CART', payload, }; expect(actions.addToCart(payload)).toEqual(expected); }); test('RemoveFromCart Action', () => { const expected = { type: 'REMOVE_FROM_CART', payload, }; expect(actions.removeFromCart(payload)).toEqual(expected); }); });
        Juan Camilo Lentino Villalba

        Juan Camilo Lentino Villalba

        student•
        hace 3 años

        para el reto

        describe('Actions', ()=> { .... test('removeToCart action', ()=> { const payload = ProductMock const expected = { type: 'REMOVE_FROM_CART', payload } expect(actions.removeFromCart(payload)).toEqual(expected) }) })
        David Alejandro Quiñonez

        David Alejandro Quiñonez

        student•
        hace 3 años

        Una forma de probar escenarios que son similares es con test.each. Quedaria algo asi:

        describe('Actions', () => { const payload = ProductMock; const actionsToTest = [ ['ADD_TO_CART', actions.addToCart, payload], ['REMOVE_FROM_CART', actions.removeFromCart, payload], ]; test.each(actionsToTest)( 'should call %p correctly', (actionType, actionToCall, expectedPayload) => { const expected = { type: actionType, payload: expectedPayload, }; expect(actionToCall(payload)).toEqual(expected); } ); });
        David Torres Guevara

        David Torres Guevara

        student•
        hace 3 años

        Solucion al reto:

        test('removeFromCart', () => { const payload = ProductMock; const expected = { type: 'REMOVE_FROM_CART', payload, }; expect(actions.removeFromCart(payload)).toEqual(expected);
        Juan Ignacio Marderwald

        Juan Ignacio Marderwald

        student•
        hace 3 años

        Un curso de inglés urgente para el profesor Oscar!!

        Luis Berenguer

        Luis Berenguer

        student•
        hace 4 años
        test("removeFromCart Action", ()=> { const payload = ProductMock const expected = { type: "REMOVE_FROM_CART", payload, } expect(actions.removeFromCart(payload).toEqual(expected)) })
        Amgonzalez@altec.com.ar

        Amgonzalez@altec.com.ar

        student•
        hace 4 años

        // actions.test.js import actions from '../../actions'; import ProductMock from '../../mocks/ProductMock';

        describe('Actions', () => { test('addToCart Action', () => { const payload = ProductMock; const expected = { type: 'ADD_TO_CART', payload, }; expect(actions.addToCart(payload)).toEqual(expected); }); // reto agregar la elimacion del producto test('RemoveFromCart Action', () => { const payload = ProductMock; const expected = { type: 'REMOVE_FROM_CART', payload }; expect(actions.removeFromCart(payload)).toEqual(expected) }) });

        Elioenai Garcia

        Elioenai Garcia

        student•
        hace 4 años

        Reto:

        Captura de pantalla 2022-02-07 085833.png

        Eddie Guadalupe Elorza Ruiz

        Eddie Guadalupe Elorza Ruiz

        student•
        hace 4 años

        RETO

        import actions from '../../actions'; import ProductMock from '../../__mocks__/ProductMock'; describe('actions', () => { test ('addToCart Action', () => { const payload = ProductMock; const expected = { type: 'ADD_TO_CART', payload } expect(actions.addToCart(payload)).toEqual(expected); }); test ('removeFromCart Action', () => { const payload = ProductMock; const expected = { type: 'REMOVE_FROM_CART', payload } expect(actions.removeFromCart(payload)).toEqual(expected); }); });
        Yaiser Avila Rodriguez

        Yaiser Avila Rodriguez

        student•
        hace 4 años

        Reto: Remove from cart jest-React->

        test('Remove from cart', () => { const expected = { type: 'REMOVE_FROM_CART', payload: ProductMock, }; expect(actions.removeFromCart(ProductMock)).toEqual(expected); });

        Andrés Felipe Eslava Zuluaga

        Andrés Felipe Eslava Zuluaga

        student•
        hace 4 años

        reTO:

        import actions from '../../actions'; import ProductMock from '../../__mocks__/ProductMock'; describe('Actions', () => { test('PRobar addToCart Action', () => { const payload = ProductMock; const expected = { type: 'ADD_TO_CART', payload, }; expect(actions.addToCart(payload)).toEqual(expected); }); test('PRobar removeFromCart Action', () => { const payload = ProductMock; const expected = { type: 'REMOVE_FROM_CART', payload, }; expect(actions.removeFromCart(payload)).toEqual(expected); }); });
        Carlos Morán

        Carlos Morán

        student•
        hace 4 años

        Mi código para probar removeFromCart

        test('removeFromCart action', () => { const payload = ProductMock; const expected = { type: 'REMOVE_FROM_CART', payload }; expect(actions.removeFromCart(payload)).toEqual(expected); });