CursosEmpresasBlogLiveConfPrecios

Pruebas estáticas

Clase 7 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
    Andrés Esteban Rodríguez Jiménez

    Andrés Esteban Rodríguez Jiménez

    student•
    hace 3 años

    Pruebas estáticas

    Las pruebas estáticas se caracterizan por no ejecutar código, solo lo analizan y nos dan un feedback temprano.

    Estas nos ayudan a ver si estamos teniendo buenas prácticas al escribir nuestro código.

    Hay herramientas que nos ayudan a ejecutar esta pruebas estáticas como lo son:

    • ESLint
    • Prettier
    • TypeScript

    Vamos a empezar a crear pruebas estáticas con ESLint, para esto debemos instalarlo:

    npm i -D eslint

    Luego de instalarlo, vamos a ejecutar el siguiente comando que nos permitirá traer ciertas configuraciones y establecer configuraciones por defecto:

    npx eslint --init

    Luego nos va a preguntar las siguientes opciones:

    1. Si queremos hacer un check de nuestra sintaxis

    2. Si queremos hacer check de sintaxis y encontrar problemas

    3. Si queremos hacer check de sintaxis, encontrar problemas y forzar el estilo de código

      Luego nos preguntará una serie de cosas relacionadas a que tecnologías estamos utilizando en nuestro proyecto, respondemos estas preguntas.

      Luego nos pregunta si corre en navegador o en un entorno de Node.

      Nos pregunta si queremos usar una guía de estilo de código, la más popular y las más recomendable suele ser la de Airbnb.

      Luego elegimos el formato del código.

      Por ultimo nos pregunta si deseamos instalar esos paquetes.

    Ya con esto podemos tener un análisis de código estático para poder tener un estándar en el cual nos podamos basar a la hora de escribir nuestro código y siguiendo buenas practicas, siguiendo un estándar que nos permita escribir un código de la misma forma siguiendo convenciones.

    Luego en el archivo de configuración package.json podemos establecer un script que nos permita hacer un examen de cualquier archivo en nuestra carpeta scr.

    { ... "scripts": { ... // Marca los errores "lint": "eslint src/**", // Marcar los errores y arreglar los problemas "lint:fix": "eslint src/** --fix" }, ... }

    Arreglar errores de Jest

    Para que no nos salte errores cuando usamos nuestras funciones de Jest usamos en el archivo de configuración de .eslint.js la siguiente configuración:

    module.exports = { env: { ... // Todo lo que venga de Jest no los alerta jest: true, }, ... };
      Luis Abdel Rangel Castro

      Luis Abdel Rangel Castro

      student•
      hace 9 meses

      Podemos utilizar npx eslint --inspect-config para lanzar un asistente que te enviará al ESLint Config Inspector, una web local donde verás cómodamente las reglas activadas, tu configuración...

    Ángel Alberto Rivas Álvarez

    Ángel Alberto Rivas Álvarez

    student•
    hace 2 años

    Si están viendo este curso en el 2024. Los archivos de configuración de ESLint han cambiado y requieren una configuración diferente a lo que se muestra en el video.

    Primero tienen que instalar esté paquete.

    npm install --dev eslint eslint-plugin-jest

    Y despues tienen que configurar su archivo esling.config.mjs de esta forma:

    import globals from "globals";

    import pluginJs from "@eslint/js";

    import jest from 'eslint-plugin-jest';

    export default [

    {

    files: ["**/*.js"],

    languageOptions: {sourceType: "commonjs"},

    ...jest.configs['flat/recommended'],

    rules: {

    ...jest.configs['flat/recommended'].rules,

    'jest/prefer-expect-assertions': 'off',

    },

    },

    {languageOptions: { globals: globals.node }},

    pluginJs.configs.recommended,

    ];

      Mariano Biondi

      Mariano Biondi

      student•
      hace 2 años

      Hola Angel, probé con esta opción pero sigue sin aparecerme la opción "To check syntax, find problems and enforce code style". Cuando selecciono la opción de correr el codigo en Node, me devuelta el msj "The config that you've selected requires the following dependencies:

      eslint@9.x, globals, @eslint/js"

      Algun consejo? Muchas gracias por tu aporte!

      Luis Abdel Rangel Castro

      Luis Abdel Rangel Castro

      student•
      hace 9 meses

      eslint.config.mjs

      import globals from "globals"; import pluginJs from "@eslint/js"; import jest from "eslint-plugin-jest"; export default [ { files: ["**/*.js"], languageOptions: { sourceType: "commonjs" }, ...jest.configs["flat/recommended"], rules: { ...jest.configs["flat/recommended"].rules, "jest/prefer-expect-assertions": "off", }, }, { languageOptions: { globals: globals.node } }, pluginJs.configs.recommended, { rules: { "no-var": "error", }, },];

    Aarón Sánchez

    Aarón Sánchez

    student•
    hace 4 años

    Les comparto un test de promedio:

    02-math.js

    Cree una función que recibe un array donde valida que no vaya vacio.

    const average = (values) => { const valuesLength = values.length if(valuesLength === 0) return null const totalValues = values.reduce((a, b) => a + b, 0) return totalValues / valuesLength }

    02-math.test.js Cree dos test, el primero valida que calcule correctamente el promedio de un array de elementos y el otro que retorne null al ser un array vacio.

    test("Average 2, 3, 3, 5, 7 and 10", () => { const values = [2, 3, 3, 5, 7, 10]; const result = average(values) expect(result).toBe(5) }); test("Should average for 0", () => { const result = average([]) expect(result).toBe(null) })
    Rubén Ernesto Aragón Gil

    Rubén Ernesto Aragón Gil

    student•
    hace 3 años

    Que suave esta clase, neta. Mis respetos siempre para el profe Nicolás por explicar tan bien.

    Miguel Angel Reyes Moreno

    Miguel Angel Reyes Moreno

    student•
    hace 3 años

    Wow, no sabía que estos también se consideraban pruebas, ¡excelente! :D

    Jose Rodrigo Ospina Reyes

    Jose Rodrigo Ospina Reyes

    student•
    hace un año

    Pregunta compañeros, estoy viendo el curso 2024, pero al realizar la instalación cambia demasiado, yo imagino que es por la versión, no se si tengan una guía de instalación actual o un video

      Federico Ivan Llano

      Federico Ivan Llano

      student•
      hace un año

      no me marca los errores, antes funcionaba sin problemas, mejor aprender a programar con typescript 🤣

      Stefhanny Pamela Lázaro Rodríguez

      Stefhanny Pamela Lázaro Rodríguez

      student•
      hace un año

      me pasa lo mismo, no me marca los errores, al correrlo por por archivo si detecta pero no marca en vs :(

    Johanna Andrade Rivera

    Johanna Andrade Rivera

    student•
    hace 7 meses

    🚀🚀Si estás por aquí en el 2025, a Abril, la configuración ha cambiado un poco a como se muestra en el video. Seguí unos pasos que vi más abajo en los comentarios pero no me sirvió🥴, así que les comparto lo que a mi me funcionó por si algun@ tiene el mismo problema:

    1. Instalar el plugin de eslint-jest npm install -D eslint eslint-plugin-jest (En mi caso se instaló la versión 28.11.0) ✅

    2. En el archivo eslint.config.mjs, agregar y/o tener el siguiente código: import js from "@eslint/js"; import globals from "globals"; import { defineConfig } from "eslint/config"; import jest from 'eslint-plugin-jest';

    export default defineConfig([ { files: ["**/*.{js,mjs,cjs}"], plugins: { js }, extends: ["js/recommended"] }, { files: ["**/*.js"], languageOptions: { sourceType: "commonjs" } }, { ...jest.configs['flat/recommended'], rules: { ...jest.configs['flat/recommended'].rules, 'jest/prefer-expect-assertions': 'off', }, }, { files: ["**/*.{js,mjs,cjs}"], languageOptions: { globals: globals.browser } }, {languageOptions: { globals: globals.node }}, js.configs.recommended,

    ]);

    ⚠️ Revisen bien , las { } , ya que podría generarles algún error.

    3. En los archivos de test (01-sum.test.js y 02-math.test.js) ya se desaparecen las alertas por las palabras test y expect.

    Espero les sirva de gran ayuda! 🫶

      Johanna Andrade Rivera

      Johanna Andrade Rivera

      student•
      hace 7 meses
      //Archivo eslint.config.mjs import js from "@eslint/js"; import globals from "globals"; import { defineConfig } from "eslint/config"; import jest from 'eslint-plugin-jest'; export default defineConfig([ { files: ["**/*.{js,mjs,cjs}"], plugins: { js }, extends: ["js/recommended"] }, { files: ["**/*.js"], languageOptions: { sourceType: "commonjs" } }, { ...jest.configs['flat/recommended'], rules: { ...jest.configs['flat/recommended'].rules, 'jest/prefer-expect-assertions': 'off', }, }, { files: ["**/*.{js,mjs,cjs}"], languageOptions: { globals: globals.browser } }, {languageOptions: { globals: globals.node }}, js.configs.recommended, ]); ```import js from "@eslint/js"; import globals from "globals"; import { defineConfig } from "eslint/config"; import jest from 'eslint-plugin-jest'; export default defineConfig(\[ { files: \["\*\*/\*.{js,mjs,cjs}"], plugins: { js }, extends: \["js/recommended"] }, { files: \["\*\*/\*.js"], languageOptions: { sourceType: "commonjs" } }, { ...jest.configs\['flat/recommended'], rules: { ...jest.configs\['flat/recommended'].rules, 'jest/prefer-expect-assertions': 'off', }, }, { files: \["\*\*/\*.{js,mjs,cjs}"], languageOptions: { globals: globals.browser } }, {languageOptions: { globals: globals.node }}, js.configs.recommended, ]);
    Iván Antonio Bustos Calderón

    Iván Antonio Bustos Calderón

    student•
    hace 3 años

    Para instalar eslint:

    npm install -D eslint

    Para configurarlo:

    npx eslint --init

    Ángel Alberto Rivas Álvarez

    Ángel Alberto Rivas Álvarez

    student•
    hace 2 años

    Si están viendo este curso en el 2024. Los archivos de configuración de ESLint han cambiado y requieren una configuración diferente a lo que se muestra en el video.

    Primero tienen que instalar esté paquete.

    yarn add --dev eslint eslint-plugin-jest

    Y despues tienen que configurar su archivo esling.config.mjs de esta forma:

    import globals from "globals"; import pluginJs from "@eslint/js"; import jest from 'eslint-plugin-jest'; export default [ { files: ["**/*.js"], languageOptions: {sourceType: "commonjs"}, ...jest.configs['flat/recommended'], rules: { ...jest.configs['flat/recommended'].rules, 'jest/prefer-expect-assertions': 'off', }, }, {languageOptions: { globals: globals.node }}, pluginJs.configs.recommended, ]; ```import globals from "globals"; import pluginJs from "@eslint/js"; import jest from 'eslint-plugin-jest'; export default \[   {   files: \["\*\*/\*.js"],   languageOptions: {sourceType: "commonjs"},   ...jest.configs\['flat/recommended'],   rules: {   ...jest.configs\['flat/recommended'].rules,   'jest/prefer-expect-assertions': 'off',   },   },   {languageOptions: { globals: globals.node }},   pluginJs.configs.recommended, ];
      Jose Rodrigo Ospina Reyes

      Jose Rodrigo Ospina Reyes

      student•
      hace un año

      Estoy utilizando npm, sería igual, la verdad no eh podido configurar el eslint

    Jorge Mario Martinez Martinez

    Jorge Mario Martinez Martinez

    student•
    hace 3 años

    PS C:\Users\jotam\OneDrive\Escritorio\testing-js\demos> npm run lint

    eslint src/**

    Oops! Something went wrong! :(

    ESLint: 8.25.0

    No files matching the pattern "src/**" were found. Please check for typing mistakes in the pattern.

    PS C:\Users\jotam\OneDrive\Escritorio\testing-js\demos>

      Carlos Vicente

      Carlos Vicente

      student•
      hace 3 años

      "lint": "eslint "/*.{js,jsx}"", "lint:fix": "eslint "/*.{js,jsx}" --fix"

    Fernando Leonel Poncio González

    Fernando Leonel Poncio González

    student•
    hace 10 meses

    Está fue la configuración que hice para el archivo eslint.config.mjs que me funcionó. Espero y les ayude esto, ya que con el paso del tiempo esta configuración ha cambiado:

    eslint.config.mjs

    import globals from 'globals'; import pluginJs from '@eslint/js'; import jest from 'eslint-plugin-jest'; import importPlugin from 'eslint-plugin-import'; import bestPractices from 'eslint-config-airbnb-base/rules/best-practices'; import errors from 'eslint-config-airbnb-base/rules/errors'; import node from 'eslint-config-airbnb-base/rules/node'; import style from 'eslint-config-airbnb-base/rules/style'; import variables from 'eslint-config-airbnb-base/rules/variables'; import es6 from 'eslint-config-airbnb-base/rules/es6'; import imports from 'eslint-config-airbnb-base/rules/imports'; import strict from 'eslint-config-airbnb-base/rules/strict'; export default [ { name: 'eslint-recommended-configuration', languageOptions: { globals: globals.node, }, }, { name: 'jest-recommended-configuration', files: ['**/*.test.js'], languageOptions: { sourceType: 'commonjs', }, ...jest.configs['flat/recommended'], rules: { ...jest.configs['flat/recommended'].rules, 'jest/prefer-expect-assertions': 'off', }, }, { name: 'airbnb-plugin-configuration', plugins: { import: importPlugin, }, rules: { ...bestPractices.rules, ...errors.rules, ...node.rules, ...style.rules, ...variables.rules, ...es6.rules, ...imports.rules, ...strict.rules, }, }, pluginJs.configs.recommended, ]; ```Y mi package.json quedaría así luego de instalar eslint-plugin-jest, eslint-plugin-import y eslint-config-airbnb-base: *package.json* ```js { "name": "demos", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "jest", "lint": "eslint src/**", "lint:fix": "eslint src/** --fix" }, "keywords": [], "author": "", "license": "ISC", "devDependencies": { "@eslint/js": "^9.12.0", "eslint": "^8.57.1", "eslint-plugin-jest": "^28.8.3", "globals": "^15.10.0", "jest": "^29.7.0", "eslint-config-airbnb-base": "^15.0.0", "eslint-plugin-import": "^2.31.0" }, "dependencies": { } }
    Juan Rossano

    Juan Rossano

    student•
    hace 2 años

    Despues de la pregunta si queria instalar los paquetes ma agrego la pregunta de que manejador entre npm, yarn y pnpm. Yo elegi npm pero me agrego esa pregunta en comparacion con el video

    Roberto Contrera

    Roberto Contrera

    student•
    hace 3 años

    Para los que tienen problemas con el espaciado que deja el enter en windows (LF CRLF Error), usen

    rules: { 'linebreak-style': 0, },

    en el documento .eslintrc.js

    Orlando Díaz Torrealva

    Orlando Díaz Torrealva

    student•
    hace 3 años

    Mi estilo favorito es el de StandardJS :D

    Diego Vergara

    Diego Vergara

    student•
    hace 3 años

    Al igual que el profesor recomiendo Typescript 100% además de ayudar con los errores te ayuda a ser más ordenado gracias a las interfaces y tipos.

    Hector Jose Flores Colmenarez

    Hector Jose Flores Colmenarez

    student•
    hace 11 días
    •
    editado

    Para los que están por aquí a mediados de la fecha de publicación de este post tratando de hacer esta configuración.

    ESLint acaba de publicar su version 9 y actualmente no hay una actualizacion de los paquetes eslint-config-airbnb (y eslint-config-airbnb-base), que son los paquetes originales de Airbnb

    Por lo que sugeria solo completar la configuracion para ESLint y continuar

    Con respecto a como quedaria nuestro archivo eslint.config.mjs

    import js from "@eslint/js"; import globals from "globals"; import { defineConfig } from "eslint/config"; import jestPlugin from "eslint-plugin-jest"; export default defineConfig([   { files: ["**/*.{js,mjs,cjs}"], plugins: { js }, extends: ["js/recommended"], languageOptions: { globals: globals.browser } },   { files: ["**/*.js"], languageOptions: { sourceType: "commonjs" } },   {     files: ["**/*.test.js", "**/*.spec.js"],     plugins: { jest: jestPlugin },     languageOptions: {       globals: {         ...globals.jest,       },     },     rules: {       ...jestPlugin.configs.recommended.rules,     },   }, ]);
    Luis Alberto Lavado Llaro

    Luis Alberto Lavado Llaro

    student•
    hace 4 meses

    Para 2025 con la version 9.33.0 de eslint, Debes instalar:

    npm i -D eslint

    y

    npm i eslint-plugin-jest -D

    Luego

    npx eslint --init

    y en tu archivo eslint.config.mjs:

    import js from "@eslint/js"; import globals from "globals"; import jest from "eslint-plugin-jest"; import { defineConfig } from "eslint/config"; export default defineConfig(\[   // Reglas base para tu código fuente   {     files: \["src/\*\*/\*.{js,mjs,cjs}"],     languageOptions: {       // si tu código corre en Node y también usa APIs de navegador, mezcla ambos       globals: { ...globals.node, ...globals.browser },     },     ...js.configs.recommended,     rules: {       // .editorconfig → ESLint core       indent: \["error", 2],                 // indent\_style + indent\_size       "linebreak-style": \["error", "unix"], // end\_of\_line = lf       "no-trailing-spaces": "error",        // trim\_trailing\_whitespace = true       "eol-last": \["error", "always"],      // insert\_final\_newline = true       "max-len": "off",                     // max\_line\_length = off       "no-var": "error",                    // Evita var       "prefer-const": "error"               // Si la variable no se reasigna, sugiere const     },   },   // Reglas específicas para tests (Jest)   {     files: \[       "\*\*/\*.{test,spec}.{js,mjs,cjs}",       "\*\*/\_\_tests\_\_/\*\*/\*.{js,mjs,cjs}",     ],     languageOptions: {       // Jest corre en Node; agrega los globals de Jest       globals: { ...globals.node, ...globals.jest },     },     plugins: { jest },     // aplica el preset recomendado del plugin (formato flat)     ...jest.configs\["flat/recommended"],     rules: {       // Mantén las mismas reglas de formato en tests       indent: \["error", 2],       "linebreak-style": \["error", "unix"],       "no-trailing-spaces": "error",       "eol-last": \["error", "always"],       "max-len": "off",     },   },   // Excepción para CHANGELOG.md (no aplicar indentación)   {     files: \["CHANGELOG.md"],     rules: {       indent: "off",     },   },   // Archivos CommonJS sueltos   {     files: \["\*\*/\*.cjs"],     languageOptions: { sourceType: "commonjs" }   }, ]);
    Daniel Mauricio Riaño Pedraza

    Daniel Mauricio Riaño Pedraza

    student•
    hace 3 años

    Mi pregunta es si ya tengo un proyecto creado en python como puedo hacer para que pueda hacer las pruebas con jest y ademas que funcione el eslint fix?

      Nicolas Molina

      Nicolas Molina

      teacher•
      hace 3 años

      Hola, si tienes el proyecto en Python no te va a funcionar, ya que estas herramientas: Jest y ESLint solo están para el ecosistema de JavaScript, sin embargo, también Pyhton tiene linters y frameworks de testing que puedes explorar.

    Catalina Quintero

    Catalina Quintero

    student•
    hace 3 años

    ¿Saben como arreglar este error?

    npm ERR! Missing script: "lint:fix"
      Alvaro Eduardo Garzón Pira

      Alvaro Eduardo Garzón Pira

      student•
      hace 3 años

      Hola Catalina, ¿Qué comando ejecutaste, podrías compartirnos el archivo package.json? Pareciera que intentas ejecutar un script que no existe.

    Juan Rossano

    Juan Rossano

    student•
    hace 2 años

    El archivo que genera eslint dice que hereda de airbnb ¿se puede acceder a ese archivo para analizarlo y hacer algunos cambios creando una configuracion propia de la que heredar?

      Axel Enrique Galeed Gutierrez

      Axel Enrique Galeed Gutierrez

      student•
      hace 2 años

      Hola, @JuanRossano. 😀 No hace falta ingresar al archivo de configuración de Airbnb, podes directamente sobrescribir las reglas desde la sección de rules de tu archivo de configuración de ESLint. Te dejo un ejemplo:

      { "rules": { "prefer-const": "error", } }

      Te dejo el link directo a todas las reglas disponibles en ESLint. De toda forma, si aún querés ver las reglas que usa Airbnb te dejo su repositorio de GitHub.

      Saludos. 😁

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