CursosEmpresasBlogLiveConfPrecios

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

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

    Viendo ahora

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

    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 el examen del curso
    • Alan David R.L.

      Alan David R.L.

      student•
      hace 6 años

      Mis notas sobre la clase:

      ¿Qué es un test?

      Como developers tenemos que garantizar que el codigo escrito cumpla con ciertos requisitos/expectativas. Esto lo hacemos por medio de una prueba (test).

      Esto nos asegura:

      • Nuestro codigo cumple con el standar.
      • Enviamos a producción sin errores.

      Tipos de pruebas

      Debemos tener en cuenta que existen dos tipos de pruebas:

      • Funcionales.

        • Pruebas Unitarias.- Se prueban pequeñas partes de nuestro codigo asegurandonos así que cumplen con lo que se desea. (En una pagina web las pruebas se traducen a probar cada sección de la pagina y todas las interacciones en ellas).
      • No funcionales.

      Jest

      Jest es un framework de JavaScript para pruebas.

        Carlos Eduardo Diaz Polanco

        Carlos Eduardo Diaz Polanco

        student•
        hace 5 años

        Mucha gracias amigo!

        Bernardo Aguayo Ortega

        Bernardo Aguayo Ortega

        student•
        hace 5 años

        thanks bro!!

      silvana murgo

      silvana murgo

      student•
      hace 5 años
      Captura de pantalla de 2020-10-02 04-40-04.png

      memes del gran @DezkaReid

        Reinaldo Mendoza

        Reinaldo Mendoza

        student•
        hace 4 años

        Jaja

      Juan Pablo Celiz

      Juan Pablo Celiz

      student•
      hace 5 años

      Buenas! Me quedé con intriga sobre pruebas funcionales y no funcionales, les dejo un pequeño resumen personal de lo que estuve investigando...

      ++Pruebas funcionales:++ Son pruebas que se realizan para testear que la funcionalidad del producto sea correcta, es decir, pasarle datos de entrada y recibir los de salida esperados. Hay varios tipos, están las pruebas unitarias, smoke test, sanity, etc.

      ++Pruebas no funcionales:++ Con estas testeamos todo lo que no influye a la funcionalidad del producto, como por ejemplo, la accesibilidad, configuración, de rendimiento, entre otras.

      Sergio Estrella

      Sergio Estrella

      teacher•
      hace 5 años

      A modo de que tengas una vista general más amplia de los tipos de testing que existen, investigué de qué tratan cada uno de los tipos de testing y te los quiero explicar a continuación:

      PRUEBAS FUNCIONALES

      Es una prueba basada en la ejecución, revisión y retroalimentación de las funcionalidades previamente diseñadas para el software. Es decir, son pruebas específicas, concretas y exhaustivas para probar y validar que el software hace lo que debe y sobre todo, lo que se ha especificado. Dentro de los tipos de pruebas unitarias se encuentran:

      • Unit Testing: Este tipo de testing consiste en probar de forma individual las funciones y/o métodos del código. Este tipo de testing se usa cuando queremos implementar Test Driven Development (TDD) Debido a lo específicas que son, generalmente son las pruebas automatizadas de menor coste, y pueden ejecutarse rápidamente por un servidor de Continuous Integration (integración continua o CI)
      • Integration Testing: Verifican que los diferentes módulos y/o servicios usados por nuestra aplicación funcionen en armonía cuando trabajan en conjunto. Son el paso siguiente al Unit Testing y son mucho más costosas, ya que requieren que la aplicación esté configurada y corriendo.
      • Functional Testing: Basados en los requerimientos del negocio, verifican el resultado de una acción, sin importarle los estados intermedios del sistema mientras se lleva a cabo la ejecución.
      • End-2-end Testing (e2e): Verifican que los flujos que sigue un usuario trabajen como se espera, y pueden ser tan simples como cargar una página o verificar un login; o cosas más complejas como un pago en línea. Son de las más costosas, así que lo ideal es usarla en partes clave de nuestra aplicación, confiando en pruebas más livianas y básicas como Unit Testing
      • Regression Testing: Se refiere a las pruebas que se aplican a algo que funcionaba en el pasado y se quiere asegurar que siga así. Si falla, significa que una nueva funcionalidad ha afectado otra funcionalidad que era correcta en el pasado, causando una "regresión".
      • Acceptance Testing: Son pruebas formales, ejecutadas para verificar si un sistema satisface sus requerimientos de negocio. Estas pruebas replican el comportamiento de los usuarios, a fin de rechazar cambios si no se cumplen los objetivos. Estos objetivos pueden ir más allá de obtener una respuesta específica, y medir el rendimiento del sistema. Se suelen aplicar al final del desarrollo, con el objetivo de que si algo salió mal, volver a corregirlo.

      PUEBAS NO FUNCIONALES

      Por otro lado, las Pruebas No Funcionales evalúas cosas como la disponibilidad, accesibilidad, usabilidad, mantenibilidad, seguridad, rendimiento.


      Como vemos, esto del testing es un mundo muy completo, y acá vamos a adentrarnos en él ;)

      Luis Fernando Farji

      Luis Fernando Farji

      student•
      hace 6 años

      Coverage: Esta herramienta nos permite que tanto estamos probando de nuestro proyecto y generar un reporte que nosotros podamos analizar a detalle y ver que nos falta por probar en nuestros proyectos.

        Oscar Barajas Tavares

        Oscar Barajas Tavares

        Team Platzi•
        hace 6 años

        Exacto, es muy potente para analizar y tomar la decisión de que vamos a probar o que nos falta por probar.

      Omar García Betanzos

      Omar García Betanzos

      student•
      hace 6 años

      Me encanta el imagotipo de Jest. Es una pasada.

      Hameyalli Elizalde

      Hameyalli Elizalde

      student•
      hace 6 años

      Hacer Test nos permite comprobar que nuestro código cumple nuestras expectativas y requisitos.

      Ruth Lucy Campos Huamantica

      Ruth Lucy Campos Huamantica

      student•
      hace 5 años

      ¿Qué es un Test? Un test es una serie de estrategias que al emplearlas y ejecutarlas correctamente, debe dar confiabilidad al proyecto realizado para que garantice su pleno funcionamiento en producción, y minimizar los errores que se puedan encontrar.

      Carlos Morán

      Carlos Morán

      student•
      hace 4 años

      Aporte sobre Jest

      Jest Jest es una potente herramienta que nos permite trabajar con pruebas, para distintos tipos de proyectos como Babel, TypeScript, Node, React, Angular, Vue, entre otros.

      Jest es un framework de pruebas para JavaScript. Jest nos permite empezar a hacer pruebas sin tanta configuración. • Nos permite probar nuestra UI con Snpashots. Los snapshots permiten llevar un seguimiento de objetos grandes fácilmente. Pueden vivir a la par de tus tests o ser incrustados en línea. • Podemos isolar las pruebas. Esto quiere decir que las pruebas correran en paralelo en su propio proceso para maximizar el rendimiento. • Tiene una herramienta de coverage para ver el porcentaje de código que estamos probando de nuestro proyecto y generar un reporte para poder analizar a detalle. • Permite trabajar con mocks. Los mocks permiten mockear cualquier objeto que se encuentre fuera del scope del test. Jest tiene una gran cantidad de documentación para usar estas características para probar nuestro código.

        Reinaldo Mendoza

        Reinaldo Mendoza

        student•
        hace 4 años

        Wow probar con snapshots?, si es lo que entiendo, esta tremendo

      John Parra

      John Parra

      student•
      hace 6 años

      Jest nos permite mediante coverage ver el avance y los diferentes puntos que requieren mayor cubrimiento, asi mismo los mocks son de gran ayuda para complementar las pruebas unitarias.

      Mariana Valencia Gallego

      Mariana Valencia Gallego

      student•
      hace 6 años

      Muy buena explicación :D

      Erick Ceballos

      Erick Ceballos

      student•
      hace 3 años

      HOLA, ESTOY BUSCANDO UN TEST SOBRE TU PERFIL DE QUE SE TE ACOMODA ESTUDIAR O ALGO ASI. ALGUIEN SABE DONDE LO ENCUENTRO ACÁ? LES AGRADEZCO MUCHO

        Kevin Fiorentino

        Kevin Fiorentino

        student•
        hace 3 años

        Tienes el Curso de Orientación Vocacional para ayudarte a encontrar eso que es para ti en Platzi. Saludos!

        Pedro Andrés Chaparro Quintero

        Pedro Andrés Chaparro Quintero

        student•
        hace 3 años

        ¿Este? Platzi Profile Test

      Emmanuel Rodríguez

      Emmanuel Rodríguez

      student•
      hace 5 años

      Definición Testing es el proceso de ejecutar un programa con el objetivo de encontrar errores. Si el "testing" es exitoso, entonces podemos sersioramos que los features están cumplidos.

      Las ventajas de poseer testing son:

      • Conocemos mejor el código y sus implicaciones en otros procesos (integración testing).
      • Reducimos el tiempo de desarrollo y horas de revisión para encontrar el "error".

      Contamos con un despertador que todas las mañanas a las 9 AM suena su alarma, pero desde hace unos días ya no lo hace, eso es una anomalía, en caso de que hubiera llegado con una manecilla rota, seria defecto, si necesita luz para funcionar y por una tormenta se nos va la luz y ya no sirve, es fallo y por último si utilizas tu despertador para que te ayude a volver con tu ex, es un error.

      Tipos de testing

      Pruebas unitarias

      Las pruebas unitarias son el nivel básico, limitadas al recurso de la aplicación. Consisten en las pruebas individuales de métodos y funciones de clases, componentes o módulos.

      Pruebas de integración

      Las pruebas de integración verifican que, los diferentes módulos o servicios, trabajen para su objetivo.

      Pruebas funcionales

      Enfocadas sobre los requerimientos de una aplicación, validan la salida de una acción y no se detienen para revisar estados intermedios de un sistema.

      Pruebas de satisfacción o Alpha

      Son pruebas que son ejecutadas para verificar si un sistema satisface sus requerimientos de negocio. Requieren que la aplicación esté en una fase llamada "testing or test", el cual supone que se encuentra lista para replicar el comportamiento del usuario.

      Entre sus validaciones pudieran ser:

      • El rendimiento del sistema.
      • Cambios visuales o adaptativos.

      Son típicamente echas por el equipo de QA.

      Pruebas de usuario o Beta

      Esta prueba es conducida por uno o varios clientes. Esta versión es lanzada para "simular" un entorno real.

      Dependiendo de su ámbito, puede contener diferentes contextos:

      • Escala o audiencia.
      • Sistema operativo o dispositivo final.
      • Seguridad.
      • Estrés.
      • Comunicación.
      Jorge De Jesus Tejeda Bello

      Jorge De Jesus Tejeda Bello

      student•
      hace 4 años

      Si muchos de los proyectos en los que trabaje los hubieran implementado pruebas unitarias nos hubiéramos ahorrado muchos dolores de cabeza

      Bernardo Aguayo Ortega

      Bernardo Aguayo Ortega

      student•
      hace 5 años

      cuales son las vantajas de jest respecto a react proptypes

      Cristhian Edwin Ortiz Mercado

      Cristhian Edwin Ortiz Mercado

      student•
      hace 4 años

      Los test siempre estan orientados a ayudar a otros desarrolladores con nuestro codigo :D

      Franklin Gerardo Pimentel Hernández

      Franklin Gerardo Pimentel Hernández

      student•
      hace 4 años

      Que genial, asi podemos asegurar que no hayan errores al programar

        Reinaldo Mendoza

        Reinaldo Mendoza

        student•
        hace 4 años

        Detectar la mayor cantidad de errores posibles antes de llegar a producción y garantizar un resultado esperado PERO, garantizar que no hay errores es imposible

      Paolo Carrion

      Paolo Carrion

      student•
      hace 4 años

      ¿ Porque debemos de hacer tests a nuestro código ?

      Los tests nos ayudan a poder validar si el codigo que escribimos, esta funcionando de la manera en la que DEBERIA de funcionar, esto es importante de mencionar, ya que aunque nuestro codigo si corra y este “funcionando bien”, puede que este no cumpla su verdadero objetivo. /

      / ¿Porque deberiamos usar Jest ?

      Nosotros podemos hacer tests incluso con las herramientas propias de el lenguaje de programacion en el que esta el codigo que queremos testear, sin embargo esto muchas veces no es muy efectivo y aconsejable, ya que estamos muy limitados e incluso puede hacer que nuestro codigo tenga malas practicas, es ahi donde Jest llega a salvar el dia, ya que este nos permite testear nuestro codigo de una manera mas rapida y eficiente.

        Reinaldo Mendoza

        Reinaldo Mendoza

        student•
        hace 4 años

        Un resumen, garantizar que no se rompa

      Andrés Felipe Eslava Zuluaga

      Andrés Felipe Eslava Zuluaga

      student•
      hace 5 años

      Permite trabajar con Babel, TS, Node, React, MongoDB, Puppeteer, y más. Se puede hacer cosas sin mucha configuración t prepararlo con snapshots el UI con sus pruebas. Partiendo de esto, JEst es potente, fácil de usar y una herramienta importante que es el Coverage generando un reporte, que permite analizar cuánto estamos probando nuestro proyecto y garantizar su implementación con Mocks.

      Carlos Morán

      Carlos Morán

      student•
      hace 4 años

      Estas son mis notas de la clase.

      **¿Que significa probar? *Uno como desarrollador debe de esperar que es código que está escribiendo deba de cumplir con una expectativa. Por ejemplo, debemos de garantizar que si una función retorna string, siempre deba de retornar strings. Para esto debemos de comprobarlo por medio de una prueba. Una prueba permite generar una expectativa sobre el resultado de un código. Nosotros vamos a garantizar que la funcionalidad de nuestro desarrollo cumpla con el estándar, que pueda ser enviado a producción sin errores, y de esta forma podamos tener la confianza de que estamos haciendo un buen código.

      Tipos de pruebas.

      1. Funcionales ○ Unitarias: prueba pequeñas fracciones de código, las cuales van a garantizar que el código cumpla con lo que nosotros deseamos. 2. No funcionales

      Jest Jest es una potente herramienta que nos permite trabajar con pruebas, para distintos tipos de proyectos como Babel, TypeScript, Node, React, Angular, Vue, entre otros.

      • En mi opinión no se garantiza al 100% que el código vaya libre de errores, pero si disminuye una gran porcentaje de ellos y se evita que pasen a producción, lo cual nos permite ahorrar tiempo y dinero que serían destinados a corregir esos errores.

    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