CursosEmpresasBlogLiveConfPrecios

Jest vs. Jasmine: entornos de testing para Angular

Clase 2 de 25 • Curso de Angular: Unit Testing para Servicios

Clase anteriorSiguiente clase

Contenido del curso

Introducción

  • 1
    Unit testing para servicios en Angular

    Unit testing para servicios en Angular

    00:56 min
  • 2
    Jest vs. Jasmine: entornos de testing para Angular

    Jest vs. Jasmine: entornos de testing para Angular

    Viendo ahora

Fundamentos de unit testing en Angular

  • 3
    Tu primera prueba en Angular

    Tu primera prueba en Angular

    10:03 min
  • 4
    Explorando matchers

    Explorando matchers

    09:46 min
  • 5
    Reporte de coverage

    Reporte de coverage

    10:13 min
  • 6
    Mocha Report

    Mocha Report

    07:42 min

Testing en servicios

  • 7
    Pruebas unitarias para servicios

    Pruebas unitarias para servicios

    15:55 min
  • 8
    Servicios con dependencias

    Servicios con dependencias

    17:52 min
  • 9
    Spies

    Spies

    10:38 min
  • 10
    Angular TestBed

    Angular TestBed

    04:55 min
  • 11
    TestBed + Spies

    TestBed + Spies

    09:21 min

Proyecto

  • 12
    Setup y maquetación del proyecto

    Setup y maquetación del proyecto

    10:55 min
  • 13
    Product Service Http

    Product Service Http

    12:31 min

Testing en consultas HTTP

  • 14
    HttpClientTestingModule

    HttpClientTestingModule

    16:57 min
  • 15
    Generando Mocks

    Generando Mocks

    08:22 min
  • 16
    Pruebas para GET

    Pruebas para GET

    09:10 min
  • 17
    Pruebas maliciosas para GET

    Pruebas maliciosas para GET

    09:54 min
  • 18
    Pruebas para POST

    Pruebas para POST

    13:51 min
  • 19
    Pruebas para PUT y DELETE

    Pruebas para PUT y DELETE

    05:23 min

Bonus

  • 20
    Pruebas a errores

    Pruebas a errores

    12:38 min
  • 21
    Pruebas con interceptores

    Pruebas con interceptores

    12:43 min
  • 22
    Pruebas al login

    Pruebas al login

    12:01 min
  • 23
    Pruebas a la API del navegador

    Pruebas a la API del navegador

    14:01 min
  • 24
    GitHub Actions

    GitHub Actions

    21:24 min

Próximos pasos

  • 25
    Toma el Curso de Angular: Unit Testing para Componentes

    Toma el Curso de Angular: Unit Testing para Componentes

    01:04 min
  • Tomar el examen del curso
    • Daniel Meza

      Daniel Meza

      student•
      hace 4 años

      Nico. Excelente labor que han hecho con este set de cursos con Angular. Y ahora este set de testing de igual manera con Angular. Sin duda los estoy aprovechando completamente. Y es la primera vez que experimentaré con pruebas... 🙌

      Eloy Ortiz

      Eloy Ortiz

      student•
      hace 3 años

      En Angular 15 puede generar la configuración que falta haciendo

      ng generate config karma

      y luego modificarla según sus necesidades.

      Este comando actualiza automáticamente el archivo de configuración angular.json.

        Pol Valle

        Pol Valle

        student•
        hace 2 años

        Gracias <3

      Cesar Elías Armendariz Ruano

      Cesar Elías Armendariz Ruano

      student•
      hace 4 años

      Jasmine: es un framework de pruebas Karma: es un test runner (corre las pruebas)

      Karme corre por detras por lo que solo debemos pooner atención en Jasmine donde escribiremos las pruebas.

      El framework más famoso de pruebas actualmente es Jest

      ¿Porqué no se hacen las pruebas en Jest? Angular viene preconfigurado para hacer las pruebas en Jasmine por lo que no se deben preocupar por nada.

      Angular maneja muchos patrones por si mismo, por ejemplo con un comando puedes instalar una PWA (progressive web app) o puedes confirgurar un service side rendering.

      En framework de testing manejan la misma estructura por lo que no hay que procuparse del framework a utilizar. En especial cuando hablamos de código JS

      Para poder inciar seguiremos los siguientes pasos

      1. Crear un proyecto desde el cmd
        1. Verifica si tienes instalado el CLI de Angular
      ng --version
      1. Crear el nuevo proyecto
      ng new ng-testing-services //respuesta a las preguntas yes scss
      1. Ingresamos al proyecto y lo abrimos en visual studio code
      cd ng-testing-services code .
      1. Nos vamos a fijar en archivos que no nos habiamos fijado previamente

      2. karma.config.js: Es la configuración del test running, por eso tiene un paquete para jasmine y uno para chrome, debido a que las pruebas se realizan contra un navegador, por lo que karma lanza las pruebas contra un navegador. Cabe reslatar que se puede cambiar de navegador

      3. Karma automaticamente va a leer todos los archvios .spec.ts por que son especificaciones de como ese servicio o componente debería funcionar. Aqui se puede encontrar varias pruebas que ya corren

      Como correr pruebas

      Vamos a la terminal y corremos el siguiente comando

      ng test

      posteriormente observamos las pruebas corridas en karma

      WSL

      Si estamos en wsl dentro de windows es necesario instalar la versión estable más reciente de google chrome y hacer unos cambios en el archivo karme.conf.js

      1. dentro del terminar de wsl con el usuario root corremos los siguientes códigos uno por uno
      sudo apt update && sudo apt -y upgrade && sudo apt -y autoremove wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb sudo apt -y install ./google-chrome-stable_current_amd64.deb google-chrome --version
      1. cambiamos el código de karma.conf.js
          browsers: ['ChromeHeadless'],
      1. corremos las pruebas y visualizamos si funciona
      Victor Alfredo Matzar Say

      Victor Alfredo Matzar Say

      student•
      hace 3 años

      Que tal :), En la versión 15 de Angular se eliminaron algunos archivos de configuración para hacer más fácil el entendimiento del framework para nuevos desarrolladores. Karma.conf.js ya no se crea por default con el ng new, sin embargo lo podemos agregar manualmente, acá el archivo: https://github.com/platzi/curso-angular-unit-testing-servicios/blob/step-1/karma.conf.js . También deberiamos agregarlo al Angular.json en la sección de tests:

      "test": { "builder": "@angular-devkit/build-angular:karma", "options": { "polyfills": [ "zone.js", "zone.js/testing" ], "tsConfig": "tsconfig.spec.json", "karmaConfig": "karma.conf.js", //Add this line :) "inlineStyleLanguage": "scss",
        Kevin Bueno

        Kevin Bueno

        student•
        hace 3 años

        Gracias, pienso que fue muy mala decisión la eliminación de estos archivos, al menos deberían agregar un comando al CLI para crearlos automáticamente porque son muy necesarios e importantes

        Juan Luna

        Juan Luna

        student•
        hace 3 años

        una cosa, no se si es solo a mi, yo no tengo esos archivos, añadidos ni el WSL, pero con la v15.0 como decis yo hago ng test y los tests se ejecutan, sin problemas en el chrome, y repito no tengo WSL, ni karma.conf.js, sil os han eliminado de todas formas los tests se ejecutan, los habrán integrado de otra forma...

      Cristian Danilo Motta Herrera

      Cristian Danilo Motta Herrera

      student•
      hace 4 años

      en windows con wsl en 25 de mayo del 2022, sin problema

        Brayan Piñeros Bolivar

        Brayan Piñeros Bolivar

        student•
        hace 3 años

        Hola , no me corre esos comandos en windows, hay problema por sudo.

      Manuel Alberto Goicochea Medina

      Manuel Alberto Goicochea Medina

      student•
      hace un año

      Recuerda que si usas NVM (node version manager ) en windows debes utilizar estos comandos :

      • Para crear el proyecto :

      npm init @angular@latest [project-name]

      • Para iniciar el proyecto :

      npm start

      • Para testing :

      npm test

      Teofilo David Fernandez Ochoa

      Teofilo David Fernandez Ochoa

      student•
      hace 3 años

      en mi caso no me genera ese archivo :S de karma.config en angular@15, pero me toco descargar la version 14 y si lo crea, existe alguna forma de ver por q ocurre ?

        Jorge Luis Silva Medina

        Jorge Luis Silva Medina

        student•
        hace 3 años

        Hola David **Angular ** a partir de la version 15 ya no lo genera. Nos da la libertar de configurarlo a nuestro gusto, puedes usar la versión 15 de Angular y tomar el archivo de configuración del proyecto en el step 1 ó configurarlo por ti mismo. https://karma-runner.github.io/6.4/config/configuration-file.html Estas son los nuevos features que se agregaron a la versión 15. https://levelup.gitconnected.com/angular-15-new-must-know-features-ae392a2baf2d

        Este es el archivo usado en el proyecto https://github.com/platzi/curso-angular-unit-testing-servicios/blob/step-1/karma.conf.js

      Neo TRAN

      Neo TRAN

      student•
      hace 4 años

      Vengo del mundo de react con Testing Library, ¿Habría algún inconveniente de compatibilidad al querer usarlo en Angular?

      ¿O se recomienda mejor usar Jasmine que ya viene por defecto en Angular?

      Allan Alexis Orellana Orellana

      Allan Alexis Orellana Orellana

      student•
      hace 3 años

      Si estan usando angular 15 o superior el ng new ya no incluye ciertos archivos por defecto. Seguir la guia de para añadirlos

      Reinaldo Mendoza

      Reinaldo Mendoza

      student•
      hace un mes

      Al fin conozco el significado de spec

      Sebastian Arrieta Villarreal

      Sebastian Arrieta Villarreal

      student•
      hace 3 años

      ¡Hola!

      Estoy usando Angular 15 y WSL. Al ejecutar ng test, sale una ventana de Chrome, así sea que le haya colocado en el archivo de configuración como ChromeHeadless.

      Josué Eliezer Gómez Soto

      Josué Eliezer Gómez Soto

      student•
      hace 2 años

      Para la parte de los navegadores a utilizar en la configuración de Karma, veo que es un arreglo, por ello me pregunto si puedo utilizarlo como se muestra continuación:

      picture.png

      Andrés Quintero Arias

      Andrés Quintero Arias

      student•
      hace 4 años

      En cuanto a rendimiento de jest vs jasmine hay alguna diferencia? o es solo por uso de mercado que jest es más popular?

        Norma Natalia Moreno Espinoza

        Norma Natalia Moreno Espinoza

        student•
        hace 4 años

        Hola!

        Mira esta tabla de comparación entre ambos. Realmente hay muchas similutudes en lo que ofrecen, dime ¿tú cuál eliges?

        ¡Nunca pares de aprender! 💚

      Yadira Rodriguez Lemus

      Yadira Rodriguez Lemus

      student•
      hace 3 años

      como se ejecuta en una version de node 12.18.3?

      Jessica Silvia Payano Castro

      Jessica Silvia Payano Castro

      student•
      hace un año

      Si al ejecutar ng test tienen este error:

      Ejecutar el siguiente comando:

      export CHROME_BIN="/mnt/c/Program Files/Google/Chrome/Application/chrome.exe" ```Luego vuelve a ejecutar `ng test` .
      José Luis Jiménez

      José Luis Jiménez

      student•
      hace 2 años
      23 04 2024 22:41:58.453:ERROR [launcher]: Cannot start Chrome

      Can not find the binary /mnt/c/Program\ Files/Google/Chrome/Application/chrome.exe

      Please set env variable CHROME_BIN

      23 04 2024 22:41:58.453:ERROR [launcher]: Chrome stdout:

      23 04 2024 22:41:58.453:ERROR [launcher]: Chrome stderr:

      Hola Comunidad.. estoy teniendo este problema con wsl2.. agradecería cualquier ayuda.

      Marcel Solera

      Marcel Solera

      student•
      hace 2 años

      Porque se debe usar wsl o una distribución de linux, si puedo correr en node en la terminal de windows

      Fernando Rocha Olivera

      Fernando Rocha Olivera

      student•
      hace 2 años

      en javascript manejan la misma estructura, pero el tema no es eso, el tema es que angular maneja formularios, inyección de dependencias, estados entre otros. Por esa razón si el curso es de angular debe ser con Jasmine debido a que es la suit de testing que provee Angular.

      Josué Eliezer Gómez Soto

      Josué Eliezer Gómez Soto

      student•
      hace 2 años

      tengo una mac... pero lo siento chicos... prefero mil veces windows y uso la mac solo para ver los videos y uso windows (a veces WSL) para tirar código

      Marcel Marin

      Marcel Marin

      student•
      hace 2 años

      Si tuvieron el error de 20 11 2023 14:29:37.358:ERROR [launcher]: Cannot start ChromeHeadless

      [1120/142937.341178:ERROR:exception_handler_server.cc(361)] getsockopt: Invalid argument (22)

      [1120/142937.341904:ERROR:socket.cc(153)] unhandled cmsg -1431655766, -1431655766

      la solución está aquí

      https://github.com/karma-runner/karma-chrome-launcher/issues/214

      Deben de usar el chromo de windows y enlazarlo al wsl, en link explican los comados y recuerden cambiar la dirección del chrome de windows por la de ustedes ajustando username y program file

    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