CursosEmpresasBlogLiveConfPrecios

Creando el proyecto

Clase 5 de 27 • Curso de Introducción al Testing con JavaScript

Clase anteriorSiguiente clase

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

    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

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
        Jazziel Horacio Puente Verdugo

        Jazziel Horacio Puente Verdugo

        student•
        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
        Axel Neil

        Axel Neil

        student•
        hace 4 años

        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
          Rodrigo Andrés Moreno Pertúz

          Rodrigo Andrés Moreno Pertúz

          student•
          hace 4 años

          Te debo una beerScript

        Andres Velasquez

        Andres Velasquez

        student•
        hace 3 años

        Wow!

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

        Andrés Esteban Rodríguez Jiménez

        Andrés Esteban Rodríguez Jiménez

        student•
        hace 3 años

        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.

        Emanuel Nieto

        Emanuel Nieto

        student•
        hace 4 años

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

          Andres Velasquez

          Andres Velasquez

          student•
          hace 3 años

          Gracias buen hombre

          Liliana Vasquez Saiz

          Liliana Vasquez Saiz

          student•
          hace 3 años

          Muchas gracias.

        Paulina Ignacio Sanvicente

        Paulina Ignacio Sanvicente

        student•
        hace 4 años

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

          Ronald Amiquero Zoiqui

          Ronald Amiquero Zoiqui

          student•
          hace 4 años

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

          Josue Quevedo Portas

          Josue Quevedo Portas

          student•
          hace 2 años

          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!!! 💪🏼

        Segrit Rodríguez

        Segrit Rodríguez

        student•
        hace 3 años

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

        SANDRO SIMON

        SANDRO SIMON

        student•
        hace 4 años

        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.

          Nicolas Molina

          Nicolas Molina

          teacher•
          hace 4 años

          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.

        Rubén Ernesto Aragón Gil

        Rubén Ernesto Aragón Gil

        student•
        hace 3 años
        Ivan Mendez

        Ivan Mendez

        student•
        hace 2 años

        Que emocionado estoy de hacer este curso

        Dany R

        Dany R

        student•
        hace 3 años

        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.😌

        Santiago Gonzalez

        Santiago Gonzalez

        student•
        hace 4 años

        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
        abigailrp

        abigailrp

        student•
        hace 3 años

        Buenisimo, muchas gracias!!!

        Oriana Morillo

        Oriana Morillo

        student•
        hace 3 años

        Editor config

          Reinaldo Mendoza

          Reinaldo Mendoza

          student•
          hace 3 años

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

        Daniel Andres Rojas Paredes

        Daniel Andres Rojas Paredes

        student•
        hace un año

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

          Jorge Arias Argüelles

          Jorge Arias Argüelles

          student•
          hace 9 meses

          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
        Oscar Uriel Zuñiga Mejia

        Oscar Uriel Zuñiga Mejia

        student•
        hace 3 años

        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

        CESAR AUGUSTO TOBON CUARTAS

        CESAR AUGUSTO TOBON CUARTAS

        student•
        hace 3 años

        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

        Alejandro Rodriguez Ortiz

        Alejandro Rodriguez Ortiz

        student•
        hace 3 años

        ¿Como se llama la consola que estas usando?

        Jhon Pulido

        Jhon Pulido

        student•
        hace 3 años

        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)

        Amanda Sierra

        Amanda Sierra

        student•
        hace 4 años

        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-
          Xavier Medina Veintimilla

          Xavier Medina Veintimilla

          student•
          hace 4 años

          ¡Hola! :D

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

          Nunca pares de aprender 💚

          Jorge Iván Otero Vargas

          Jorge Iván Otero Vargas

          student•
          hace 4 años

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

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