CursosEmpresasBlogLiveConfPrecios
Curso de Introducción al Testing con JavaScript

Creando el proyecto

Curso de Introducción al Testing con JavaScript

Contenido del curso

Introduccion

  • 1
    ¿Qué es el testing?

    ¿Qué es el testing?

    09:31 min
  • 2
    La piramide del testing

    La piramide del testing

    07:46 min
  • 3
    Hablemos sobre deuda técnica

    Hablemos sobre deuda técnica

    06:48 min
  • 4
    Herramientas de testing

    Herramientas de testing

    07:54 min
  • 5
    Creando el proyecto

    Creando el proyecto

    Viendo ahora
  • 6
    Tu primer test

    Tu primer test

    09:15 min

Escribiendo pruebas

  • 7
    Pruebas estáticas

    Pruebas estáticas

    11:44 min
  • 8
    Assertions / matchers

    Assertions / matchers

    10:10 min
  • 9
    Setup and Teardown

    Setup and Teardown

    11:31 min
  • 10
    Implementado Setup

    Implementado Setup

    12:00 min
  • 11
    Tipos de pruebas

    Tipos de pruebas

    13:34 min
  • 12
    Metodologías

    Metodologías

    13:59 min

Pruebas Unitarias

  • 13
    Pruebas unitarias

    Pruebas unitarias

    06:32 min
  • 14
    Coverage report

    Coverage report

    08:06 min
  • 15
    Instalación de Docker en Windows, macOS y Ubuntu

    Instalación de Docker en Windows, macOS y Ubuntu

    01:35 min
  • 16
    Proyecto de API

    Proyecto de API

    11:48 min
  • 17
    Mocking, Stub, doubles

    Mocking, Stub, doubles

    14:08 min
  • 18
    Mocking

    Mocking

    09:43 min
  • 19
    Spies

    Spies

    11:36 min
  • 20
    Generando Fake Books

    Generando Fake Books

    12:19 min

Integration Test & E2E

  • 21
    Configurando supertest en el API

    Configurando supertest en el API

    16:29 min
  • 22
    Integration Test

    Integration Test

    09:44 min
  • 23
    e2e

    e2e

    20:40 min

UI Test

  • 24
    UI Test

    UI Test

    10:02 min

Automatizar

  • 25
    Unit tests en GitHubActions

    Unit tests en GitHubActions

    13:49 min
  • 26
    E2E en GitHubActions

    E2E en GitHubActions

    08:02 min
  • 27
    ¿Quieres más cursos de testing?

    ¿Quieres más cursos de testing?

    01:51 min
Tomar examen

Creando el proyecto

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

      Comentarios33

      Jazziel Horacio Puente Verdugo

      Jazziel Horacio Puente Verdugo

      Estudiante
      Hace 4 años
      Axel Neil

      Axel Neil

      Estudiante
      Hace 4 años
        Rodrigo Andrés Moreno Pertúz

        Rodrigo Andrés Moreno Pertúz

        Estudiante
        Hace 4 años
      Andrés Esteban Rodríguez Jiménez

      Andrés Esteban Rodríguez Jiménez

      Estudiante
      Hace 4 años
      Andres Velasquez

      Andres Velasquez

      Estudiante
      Hace 3 años
      Emanuel Nieto

      Emanuel Nieto

      Estudiante
      Hace 4 años
        Andres Velasquez

        Andres Velasquez

        Estudiante
        Hace 3 años
        Liliana Vasquez Saiz

        Liliana Vasquez Saiz

        Estudiante
        Hace 3 años
      Paulina Ignacio Sanvicente

      Paulina Ignacio Sanvicente

      Estudiante
      Hace 4 años
        Ronald Amiquero Zoiqui

        Ronald Amiquero Zoiqui

        Estudiante
        Hace 4 años
        Josue Quevedo Portas

        Josue Quevedo Portas

        Estudiante
        Hace 3 años
      Segrit Rodríguez

      Segrit Rodríguez

      Estudiante
      Hace 3 años
      SANDRO SIMON

      SANDRO SIMON

      Estudiante
      Hace 4 años
        Nicolas Molina

        Nicolas Molina

        Profesor
        Hace 4 años
      Rubén Ernesto Aragón Gil

      Rubén Ernesto Aragón Gil

      Estudiante
      Hace 3 años
      Ivan Mendez

      Ivan Mendez

      Estudiante
      Hace 3 años
      Dany R

      Dany R

      Estudiante
      Hace 3 años
      Santiago Gonzalez

      Santiago Gonzalez

      Estudiante
      Hace 4 años
      Daniel Andres Rojas Paredes

      Daniel Andres Rojas Paredes

      Estudiante
      Hace 2 años
        Jorge Arias Argüelles

        Jorge Arias Argüelles

        Estudiante
        Hace un año
      abigailrp

      abigailrp

      Estudiante
      Hace 3 años
      Oriana Morillo

      Oriana Morillo

      Estudiante
      Hace 4 años
        Reinaldo Mendoza

        Reinaldo Mendoza

        Estudiante
        Hace 4 años
      Oscar Uriel Zuñiga Mejia

      Oscar Uriel Zuñiga Mejia

      Estudiante
      Hace 3 años
      CESAR AUGUSTO TOBON CUARTAS

      CESAR AUGUSTO TOBON CUARTAS

      Estudiante
      Hace 3 años
      Alejandro Rodriguez Ortiz

      Alejandro Rodriguez Ortiz

      Estudiante
      Hace 3 años
      Jhon Pulido

      Jhon Pulido

      Estudiante
      Hace 4 años
      Amanda Sierra

      Amanda Sierra

      Estudiante
      Hace 4 años
        Xavier Medina Veintimilla

        Xavier Medina Veintimilla

        Estudiante
        Hace 4 años
        Jorge Iván Otero Vargas

        Jorge Iván Otero Vargas

        Estudiante
        Hace 4 años

      código de .editorconfig

      root = true [*] indent_style = space indent_size = 2 charset = utf-8 trim_trailing_whitespace = true insert_final_newline = true end_of_line = lf # editorconfig-tools is unable to ignore longs strings or urls max_line_length = off [CHANGELOG.md] indent_size = false

      tengan, para que solo busquen la documentacion y peguen las cosas en los archivos correspondientes

      mkdir testing-js cd testing-js git init touch .gitingore mkdir api mkdir webapp mkdir demos touch .editorconfig cd demos npm init -y touch .gitingore npm install --save-dev jest mkdir src cd src touch 01-sum.js touch sum.test.js

      Te debo una beerScript

      Creando el proyecto

      Vamos a empezar a crear un proyecto para aprender de testing con Jest. Para esto debemos ir a la página oficial de jest y vamos a leer un poco la documentación.

      Vamos ahora a instalar Jest en nuestro proyecto, para esto ya debimos haber inicializado nuestro proyecto en Node.

      Vamos entonces a descargar Jest:

      npm install --save-dev jest

      Para probar la funcionalidad de Jest vamos a copiar una prueba que tiene Jest en su página oficial.

      Vamos a crear un archivo dentro de una carpeta src, este se llamará por ejemplo sum.js.

      Dentro de este archivo vamos a copiar la siguiente función.

      function sum(a, b) { return a + b; } module.exports = sum;

      Para poder crear nuestra prueba, vamos a tener que crear un archivo de prueba que se llame igual que nuestro archivo creado, solo que al final debe tener la extensión .test.js ósea que nuestro archivo de test para nuestro archivo anterior se llamará sum.test.js.

      Dentro de este vamos a crear nuestro test:

      const sum = require('./sum'); test('adds 1 + 2 to equal 3', () => { expect(sum(1, 2)).toBe(3); });

      Ya con esto lo último que nos falta es el como correr las pruebas, para esto iremos a nuestro archivo de configuración package.json y en el apartado de scripts vamos a modificar el comando de test:

      { ... "scripts": { **"test": "jest"** }, ... }

      Ahora en nuestra terminal vamos a poder ejecutar nuestro comando:

      npm run test

      Y si nuestra prueba sale como exitosa, ya tendríamos configurado Jest en nuestro proyecto.

      Wow!

      Nunca habia tomado un curso con Nicolas Molina Es realmente bueno explicando y enseñando!

      Recuerden cambiar en el archivo 01-sum.test.js en lugar de: const sum = require('./sum'); es: const sum = require('./01-sum');

      Gracias buen hombre

      Muchas gracias.

      Uuuy, ¿cómo configuraste tu consola para que se vea así?

      Dejo mi comentario para que me notifique la aplicación xd

      Lo pueden hacer a través de zsh y oh-my-zsh e instalando si no me equivoco los temas de powerlevel10k.

      zsh es una Shell, si trabajan con Linux la shell más usada es Bash, que es la que se encarga de ejecutar los comandos que introducimos en la terminal, en este caso para poder usar los temas de PowerLevel10k es necesario tener instala la shell "Zsh", la cual la pueden instalar a través de Oh My Zsh, ahi viene el comando a ejecutar para tenerla instalada.

      Posterior a eso tienen que instalar PowerLevel10K que es basicamente un conjunto de temas par ala terminal, las instrucciones las encuentran dentro de su Github: PowerLevel10K.

      Recomiendo leer muy bien las instrucciones y antes de hacer cualquier movimiento ver algun tutoría por YT o por internet donde vean paso a paso como instalar powerlevel10k... la primera vez que lo instale me hice un enredo total jajaja ya ahora se me hace muy fácil, pero recomiendo ver algun tutoría antes de meter mano...

      A mi me encanta lo minimalista, asi es que tengo mi terminal muy limpia, pero hay muchos temas a probar...

      Screenshot 2023-12-19 at 2.17.22 a.m..png

      Mucha suerte!!! 💪🏼

      quisiera saber cual es la terminal que el profesor utiliza para iniciar el proceso ?

      Hola. Tengo claro que el .gitignore es para ignorar ciertos archivos al hacer commit. Lo que no me queda claro es cuales serían esos archivos que se quieren ignorar en este caso ¿son archivos generados automáticamente al ejecutar los testings? Slds.

      Hola, en este caso de pruebas igual se deben ignorar algunos archivos de configuración comunes de un proyecto de Node además que si hay algunos archivos que se generan a la hora de hacer pruebas que no es buena práctica subirlos, por ejemplo cuando generamos el reporte de cobertura normalmente esto no se sube al repo.

      Que emocionado estoy de hacer este curso

      EditorConfig es una herramienta que ayuda a los desarrolladores a mantener un estilo consistente de código entre diferentes editores y plataformas. Al utilizar un archivo .editorconfig en un proyecto, puedes especificar opciones como la cantidad de espacios en blanco, el uso de tabulaciones u otros estilos de codificación. Esto es útil cuando varias personas trabajan en un proyecto y pueden estar utilizando diferentes editores de código, ya que asegura que todo el código tenga un formato consistente.😌

      Contenido del ignore:

      # Created by https://www.toptal.com/developers/gitignore/api/macos,windows,linux # Edit at https://www.toptal.com/developers/gitignore?templates=macos,windows,linux ### Linux ### *~ # temporary files which can be created if a process still has a handle open of a deleted file .fuse_hidden* # KDE directory preferences .directory # Linux trash folder which might appear on any partition or disk .Trash-* # .nfs files are created when an open file is removed but is still being accessed .nfs* ### macOS ### # General .DS_Store .AppleDouble .LSOverride # Icon must end with two \r Icon # Thumbnails ._* # Files that might appear in the root of a volume .DocumentRevisions-V100 .fseventsd .Spotlight-V100 .TemporaryItems .Trashes .VolumeIcon.icns .com.apple.timemachine.donotpresent # Directories potentially created on remote AFP share .AppleDB .AppleDesktop Network Trash Folder Temporary Items .apdisk ### macOS Patch ### # iCloud generated files *.icloud ### Windows ### # Windows thumbnail cache files Thumbs.db Thumbs.db:encryptable ehthumbs.db ehthumbs_vista.db # Dump file *.stackdump # Folder config file [Dd]esktop.ini # Recycle Bin used on file shares $RECYCLE.BIN/ # Windows Installer files *.cab *.msi *.msix *.msm *.msp # Windows shortcuts *.lnk # End of https://www.toptal.com/developers/gitignore/api/macos,windows,linux

      la parte del editor config no entendi el porque y para que de ese archivo y esa extencion?

      Hola Daniel!

      El archivo .editorconfig sirve para asegurar que todos los desarrolladores del proyecto usen las mismas reglas de formato al escribir código, sin importar el editor o IDE que estén usando (VS Code, WebStorm, Sublime, etc.).

      root = true //Indica que este archivo es la raíz de la configuración. El editor no debe buscar .editorconfig en carpetas superiores. [*] indent_style = space // Usar espacios (no tabs) indent_size = 2 // Cada indentación será de 2 espacios charset = utf-8 // Codificación de caracteres trim_trailing_whitespace = true // Elimina espacios en blanco al final de cada línea insert_final_newline = true // Asegura una línea vacía al final del archivo end_of_line = lf // Usar salto de línea tipo Unix (LF) max_line_length = off // No aplicar límite de caracteres por línea [CHANGELOG.md] indent_size = false // No se forzará indentación específica en ese archivo

      Buenisimo, muchas gracias!!!

      Editor config

      .editorconfig buenisimo para trabajar en equipos, sino despues van a haber un monton de commits que no tienen nada que ver con la logica

      Me podrian apoyar? al realizar la pruema me marca un error en sum is not a function, y no me permite que la prueba sea correcta

      Hola.

      Tengo el siguiente problema.

      Estoy siguiente el curso en un entorno virtual con Linux Ubuntu y al momento de correr el comando npm run test, me esta arrojando la siguiente información

      npm ERR! Linux 5.4.0-144-generic npm ERR! argv "/usr/bin/node" "/usr/bin/npm" "run" "test" npm ERR! node v8.10.0 npm ERR! npm v3.5.2 npm ERR! file sh npm ERR! code ELIFECYCLE npm ERR! errno ENOENT npm ERR! syscall spawn npm ERR! demos@1.0.0 test: jest npm ERR! spawn ENOENT npm ERR! npm ERR! Failed at the demos@1.0.0 test script 'jest'. npm ERR! Make sure you have the latest version of node.js and npm installed. npm ERR! If you do, this is most likely a problem with the demos package, npm ERR! not with npm itself. npm ERR! Tell the author that this fails on your system: npm ERR! jest npm ERR! You can get information on how to open an issue for this project with: npm ERR! npm bugs demos npm ERR! Or if that isn't available, you can get their info via: npm ERR! npm owner ls demos npm ERR! There is likely additional logging output above.

      npm ERR! Please include the following file with any support request: npm ERR! /home/admin1/Desktop/TestingJS/demos/npm-debug.log

      Y seguí la instalación de acuerdo al video. Alguien me puede accesorar de como darle solución a este problema

      ¿Como se llama la consola que estas usando?

      no me funciono

      SyntaxError: Unexpected token '.' at wrapSafe (internal/modules/cjs/loader.js:915:16) at Module._compile (internal/modules/cjs/loader.js:963:27) at Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10) at Module.load (internal/modules/cjs/loader.js:863:32) at Function.Module._load (internal/modules/cjs/loader.js:708:14) at Module.require (internal/modules/cjs/loader.js:887:19) at require (internal/modules/cjs/helpers.js:74:18) at Object.<anonymous> (/home//Documentos/github-repository/platzi_practice/testing-js/demo/node_modules/jest-cli/build/index.js:12:12) at Module._compile (internal/modules/cjs/loader.js:999:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10)

      Buenas tardes, volví a instalar todo y ahora en el ejercicio de prueba de la instalación me sale este error, alguien me podría decir por favor qué es? FAIL src/01-sum.test.js ● Test suite failed to run

      Cannot find module './sum' from 'src/01-sum.test.js' > 1 | const sum = require('./sum'); | ^ 2 | 3 | test('sumar 1 + 2 es igual a 3', () => { 4 | expect(sum(1, 2)).toBe(3); at Resolver._throwModNotFoundError (node_modules/jest-

      ¡Hola! :D

      Parace que jest no está instalado. Prueba corriendo en la consola esto npm install --save-dev jest

      Nunca pares de aprender 💚

      Cuando importaste el archivo de origen, dejaste el que trae por defecto el ejemplo de jest, debes cambiarlo a:

      const suma = require("./01-sum");