Envíanos tu consulta
Términos y condiciones *
*Si no puedes asistir en directo de facilitaremos un enlace para verlo en diferido
logoImagina
iconoCurso

Curso completo de TDD y BDD en Proyectos Angular con Jasmine, Karma y Cypress

DISPONIBLE EN MODALIDAD:
En este curso desarrollarás tus habilidades en la creación de aplicaciones Angular para obtener soluciones mantenibles, robustas, extensibles y bajo procesos automatizados de testing unitario, integración con Jasmine y e2e con Cypress
iconClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClient
Formación en TDD y BDD en Proyectos Angular con Jasmine, Karma y Cypress bonificable para empresas

¿A quién va dirigido?

- Desarrolladores web con experiencia en Angular que quieran ampliar sus conocimientos en las áreas de testing unitario, integración y e2e

Objetivos

  • Crear proyectos Angular robustos, mantenibles y extensibles implementando pruebas unitarias y de integración.
  • Elaborar y automatizar pruebas unitarias, de integración y funcionales con Jasemine y Karma
  • Entender qué son los Mocks, los stubs y para qué se deben emplear
  • Automatizar la ejecución de pruebas, la obtención de coverage e informes de aceptación
  • Desarrollar purbeas e2e con Cypress

¿Qué vas a aprender?

En este curso desarrollarás tus habilidades en la creación de aplicaciones Angular para obtener soluciones mantenibles, robustas, extensibles y bajo procesos automatizados de testing unitario, integración con Jasmine y e2e con Cypress

Requisitos

  • Tener experiencia en desarrollo en HTML, CSS, Javascript, Typescript y aplicaciones Angular (14 o superior)
  • Disponer de una cuenta de Github con acceso a Github Actions
  • Disponer de un equipo con acceso a un usuario con permisos de instalación
  • Tener NodeJS, NPM, GIT, Docker Desktop y Visual Studio Code instalados en su última versión en el equipo

Temario del curso

tema 1

Introducción al testing

  • Introducción a los fundamentos de pruebas unitarias y de integración
  • Introducción a los conceptos de Mocking y Stubbing
  • Introducción a los fundamentos de pruebas de snapshot
  • Introducción a los fundamentos de pruebas e2e
  • Propociones de tipos de tests en proyectos reales
  • Introducción al concepto del coverage
  • La falacia del 100% de coverage
  • ¿Qué ventajas aporta el testing automatizado en un proyecto?
  • Introducción a la metodología TDD
  • Preguntas frecuentes acerca de la metodología TDD
  • ¿Cuántas pruebas hay que redactar? La regla Goldilock
tema 2

Jasmine

  • Introducción a Jasmine
  • Introducción a librería de pruebas de Angular
  • Sintáxis y léxico de Jasmine
  • Test Cases y Test Suites
  • Asserts
  • Before Each y Before All
  • After Each y After All
  • Anidando tests suites
  • Matchers
  • Spies
  • Mocks
  • Sintaxis para ejecutar determinadas pruebas
  • Sintaxis para saltar pruebas durante la ejecución
tema 3

Instalaciones, configuración y puesta en marcha

  • Creación de proyecto Angular con Jasmine y Karma preconfigurados
  • Instalación de Eslint en proyecto Angular
  • Configuración de Eslint
  • Análisis de archivos de configuración de Jasmine y Karma
  • Escribiendo scripts npm para linting y ejecución de pruebas
  • Escribiendo tu primer test unitario con Jasmine
  • Ejecución y análisis de informa generado
  • Modificando el script para obtener el coverage del proyecto
  • Configurando Karma para ser ejecutado en modo headless
  • Otras flags y opciones de configuración en la ejecución de Jasmine
  • Depuración y puntos de ruptura en tests unitarios
tema 4

Itinerario para crear pruebas en aplicaciones Angular

  • Decidiendo qué componentes son necesarios
  • Escribiendo tests unitarios para cada componente
  • Implementando código a cada componente
  • Añadiendo snapshot tests para componentes terminados
  • Pruebas manuales en el navegador
  • Pruebas automatizadas con scripts npm
  • Aprendiendo a saber qué no probar
tema 5

Testing de componentes

  • Entendiendo la API de librería de tests de Angular
  • Creación pruebas para componentes con librería de tests de Angular
  • Montando un componente
  • Decidiendo qué probar en un componente
  • Ideando las especificaciones de alto nivel y nivel de componente
  • Redactando pruebas para @Inputs y @Outputs de un componente
  • Redactando pruebas para renderizados condicionales
  • Búsqueda de elementos en un componente
  • Redactando pruebas de para acciones de ususario
  • Redactando pruebas para el obtener atributos DOM de elementos en un componente
  • Redactando pruebas para atributos class en elementos de un componente
  • Buenas prácticas
tema 6

Testing de estilos aplicados al componente

  • ¿Cómo acceder a elementos wrapper?
  • Accediendo a atributo style de un elemento
  • Buenas prácticas
tema 7

Pruebas para Componentes embebidos

  • Redactando pruebas para encontrar todos los elementos de un componente
  • Redactando pruebas con componentes con childs embebidos
  • Buenas prácticas
tema 8

Testing de métodos, acciones de usuario y eventos Angular

  • Redactando pruebas para probar funciones públicas y privadas de un componente
  • Redactando pruebas para funciones que usen timeouts e intervalos a través de fake timers
  • Buenas prácticas
tema 9

Testing de eventos

  • Redactando pruebas para eventos nativos del DOM
  • Redactando pruebas para eventos Vue
  • Redactando pruebas para comprobar que un componente emite un evento
  • Redactando pruebas para formularios
  • Buenas prácticas
tema 10

Testing de Servicios

  • ¿Cómo probar Servicios?
  • Realizando pruebas sobre servicios y observables
tema 11

Spies y Mocking

  • Usando Spies para espiar la ejecución de funciones
  • Entendiendo qué son los side effects y cómo lo controlamos a través de Mocks
  • Mocking de funciones
  • Mocking de peticiones http de HttpClient de Angular
  • Redactando pruebas para el ciclo de vida de un componente
  • Mocking de dependencias de módulo
  • Buenas prácticas
tema 12

Pruebas asíncronas

  • Redactando pruebas para código asíncrono
  • Buenas prácticas
tema 13

Testing de Pipes

  • Redactando pruebas para Pipes personalizados
  • Buenas prácticas
tema 14

Testing del estado de la aplicación con NgRX

  • ¿Debemos probar cada parte de NgRx por separado?
  • Redactando pruebas para cambios del estado
  • Redactando pruebas para actions de NgRx
  • Redactando pruebas para la instancia del store de NgRx
  • Buenas prácticas
tema 15

Testing de Angular Router

  • Redactando pruebas para componentes que usan Angular Router
  • Redactando pruebas de navegación
  • Redactando pruebas para paso de parámetros por navegación
  • Redactando pruebas para Guards de rutas
  • Problemáticas habituales
  • Buenas prácticas
tema 16

Snapshot testing

  • Entendiendo correctamente lo que son las pruebas de snapshot
  • Redactando pruebas snapshots para componentes estáticos
  • Redactando pruebas snapshots para componentes dinámicos
  • Añadiendo pruebas de Snapshot al flujo de trabajo habitual
  • Buenas prácticas
tema 17

Automatización CI/CD con Gitlab

  • Configuración de GitIgnore en proyectos Angular
  • Configuración de archivos YAML en proyectos Angular
  • Especificando Stages de pruebas
  • Creación de pipelines
  • Análisis de Jobs
  • Configuraciones y buenas prácticas en Gitlab CI/CD

Curso de TDD y BDD en Proyectos Angular con Jasmine, Karma y Cypress bonificado para Empresas a través de FUNDAE

Somos entidad organizadora de FUNDAE, todas nuestras formaciones se pueden bonificar hasta el 100%, sujeto a vuestro crédito disponible y a cumplir con todos los requisitos de realización establecidos por la Fundación Estatal para el Empleo.

 

Si desconoces el funcionamiento de las bonificaciones, ofrecemos el servicio de gestión en FUNDAE, consúltanos cualquier duda que te surja.

Descargar Guía FUNDAE
imagenFundae
iconClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClient