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
  • 2
    La piramide del testing

    La piramide del testing

    07:46
  • 3
    Hablemos sobre deuda técnica

    Hablemos sobre deuda técnica

    06:48
  • 4
    Herramientas de testing

    Herramientas de testing

    07:54
  • 5
    Creando el proyecto

    Creando el proyecto

    08:15
  • 6
    Tu primer test

    Tu primer test

    09:15
Escribiendo pruebas
  • 7
    Pruebas estáticas

    Pruebas estáticas

    11:44
  • 8
    Assertions / matchers

    Assertions / matchers

    10:10
  • 9
    Setup and Teardown

    Setup and Teardown

    11:31
  • 10
    Implementado Setup

    Implementado Setup

    12:00
  • 11
    Tipos de pruebas

    Tipos de pruebas

    13:34
  • 12
    Metodologías

    Metodologías

    13:59
Pruebas Unitarias
  • 13
    Pruebas unitarias

    Pruebas unitarias

    06:32
  • 14
    Coverage report

    Coverage report

    08:06
  • 15

    Instalación de Docker en Windows, macOS y Ubuntu

    01:35
  • 16
    Proyecto de API

    Proyecto de API

    11:48
  • 17
    Mocking, Stub, doubles

    Mocking, Stub, doubles

    14:08
  • 18
    Mocking

    Mocking

    09:43
  • 19
    Spies

    Spies

    11:36
  • 20
    Generando Fake Books

    Generando Fake Books

    12:19
Integration Test & E2E
  • 21
    Configurando supertest en el API

    Configurando supertest en el API

    16:29
  • 22
    Integration Test

    Integration Test

    09:44
  • 23
    e2e

    e2e

    20:40
UI Test
  • 24
    UI Test

    UI Test

    10:02
Automatizar
  • 25
    Unit tests en GitHubActions

    Unit tests en GitHubActions

    13:49
  • 26
    E2E en GitHubActions

    E2E en GitHubActions

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

    ¿Quieres más cursos de testing?

    01:51
    Jazziel Horacio Puente Verdugo

    Jazziel Horacio Puente Verdugo

    student•
    hace 3 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 3 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 3 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 3 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 3 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 3 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 7 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 3 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");

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