Pasar al contenido principal
Drupal Behat Course - Behavior-driven development (BDD)
Course

Curso de Drupal Behat - Desarrollo guiado por comportamiento (BDD)

El curso de Drupal Behat de Metadrop enseña Desarrollo Guiado por Comportamiento — pruebas de historias de usuario, integración con Drupal y configuración de canalizaciones de CI para equipos de desarrollo profesionales.
Duración

Durante este curso se proporcionan las bases para la integración con Behat (software de pruebas en sitios web de forma automatizada), la adquisición de conocimientos en la definición de pruebas orientadas a funcionalidades mediante historias de usuario, así como su integración en un entorno Drupal.

Este curso está dirigido a profesionales del mundo online que buscan una forma intuitiva de probar sus aplicaciones en un lenguaje comprensible para personal no técnico, permitiendo su lectura y conceptualización basada en un modelo de negocio claro definido según las especificaciones del cliente.

La formación se distribuye en dos días y puede complementarse con casos prácticos en modalidad de taller en días posteriores sobre proyectos indicados por el solicitante.

What you will learn

El objetivo de este curso cubre los primeros pasos para adoptar Behat como herramienta de pruebas en proyectos de Drupal. Los estudiantes tendrán el conocimiento necesario para poder crear y adaptar pruebas en Drupal.
Base de los enfoques de prueba para aplicaciones en línea
Buenas prácticas al desarrollar un conjunto de pruebas.
Ejecución de pruebas Behat
Escritura y adaptación de las pruebas de Behat.
Conocimiento de herramientas y plugins relacionados con Behat

Course modules

Pruebas: introducción y tipos

Cada tipo de prueba cubre un nivel diferente del producto: las pruebas unitarias comprueban las partes más pequeñas del código, las pruebas funcionales que una característica específica hace lo que debe, y las pruebas de aceptación que el producto cumple los requisitos del negocio. Estas últimas son las que el cliente puede leer, entender y validar. También se analiza cuándo merece la pena automatizar y cuándo no.

  1. Descripción del curso
  2. Prueba: introducción y objetivos
  3. Tipos de pruebas
    1. Pruebas unitarias
    2. Pruebas funcionales
    3. Prueba de comportamiento
    4. Selección del tipo de prueba
    5. Pruebas manuales vs automáticas

BDD: desarrollo dirigido por comportamiento

En BDD, las pruebas se derivan directamente de los requisitos de negocio escritos en lenguaje sencillo, de modo que los equipos de negocio y técnicos parten de una comprensión compartida de cómo debe comportarse el producto. Los escenarios funcionan tanto como pruebas automatizadas como documentación viva: cuando un requisito cambia, el escenario cambia, y lo que no se actualiza no supera las pruebas.

  1. Descripción
  2. Metodología
  3. Descripción de las características del sistema

Las historias de usuario

Convertimos los requisitos abstractos en comportamientos verificables. Partiendo del formato "como… quiero… para que…", añadimos lo que hace comprobable un escenario: precondiciones, poscondiciones, escenarios alternativos y casos de error. Terminamos con la diferencia entre verificar (el sistema hace lo que dice la especificación) y validar (que eso es lo que el negocio realmente necesitaba).

  1. Casos de uso
  2. Como ___ quiero ___ para ___
  3. Precondiciones
  4. Postcondiciones
  5. Escenarios alternativos
  6. Casos de error
  7. Verificación vs. validación

Introducción a Behat

Behat es la herramienta que ejecuta los escenarios: BDD es la metodología, Gherkin el lenguaje en el que están escritos los escenarios, y Behat el motor que los lee y los comprueba contra el sistema real. Encaja de forma natural en entornos PHP y es ampliamente usado en proyectos Drupal, porque hay pasos ya preparados para nodos, usuarios, permisos, formularios y vistas. Mink es lo que decide si un escenario necesita JavaScript o no.

  1. ¿Qué es Behat?
  2. Sintaxis
  3. Extensiones - Mink
    1. Descripción
    2. Controladores
  4. JavaScript frente a sin JavaScript

Anatomía de una función

Desglosamos un archivo .feature pieza a pieza: la feature describe la funcionalidad que se valida, el scenario un caso específico dentro de ella, y los pasos Given/When/Then las acciones y los resultados esperados. A partir de ahí, las herramientas que evitan repetirse: backgrounds para el contexto compartido, scenario outlines para ejecutar el mismo escenario con varios conjuntos de datos, y variantes para los casos de error.

  1. Estructura de archivos
  2. Características
  3. Pasos
  4. Escenarios
  5. Variantes
    1. Error
  6. Esquemas de escenarios
  7. Antecedentes
  8. Pasos avanzados
  9. Ejemplo completo

La parte práctica

Primer bloque práctico: configuramos la máquina de pruebas y escribimos escenarios sobre casos reales, desde comprobaciones básicas de acceso y errores hasta visualización de contenido, navegación y formularios, incluyendo los que dependen de JavaScript. La regla en todo momento es mantener solo los pasos que verifican un comportamiento real y descartar los decorativos.

  1. Instalación de la máquina de pruebas
  2. Casos prácticos
    1. Conceptos básicos
      1. Página de inicio
      2. Comprobación de acceso
      3. Errores en las pruebas
    2. Contenido
      1. Visualización
      2. Navegación
    3. Formularios
      1. Búsqueda
      2. Crear contenido
      3. Formularios con JavaScript

Instalación e integración en Drupal

Instalamos Behat con Composer en un entorno DDEV y repasamos los paquetes que lo hacen funcionar en Drupal: behat/behat como ejecutor, behat/mink y su extensión para interactuar con el navegador, los controladores correspondientes, y drupal/drupal-extension, que proporciona los pasos específicos de Drupal. Con eso en su lugar, la decisión práctica es cuándo un emulador sin interfaz gráfica es suficiente y cuándo es necesario manejar un navegador real.

  1. Introducción
  2. Instalación de componentes
    1. Composer
    2. Behat (Behat Drupal Extension)
    3. Selenium / ChromeDriver
  3. Integración de Behat en Drupal
    1. Emuladores de navegación
    2. Tipos
      1. Emuladores de navegador sin interfaz
      2. Controladores de navegador
    3. Drivers
      1. GoutteDriver
      2. Selenium (JavaScript)
  4. Behat Drupal Extension

Configuración: behat.yml y contextos

En behat.yml se declara todo: los suites, los contextos que proporcionan los pasos disponibles, las extensiones y la URL base del entorno, con perfiles separados para no tener que tocar la configuración principal al cambiar de entorno. También se analiza dónde residen las features y los contextos dentro del proyecto, y cómo cargar los contextos de DrupalExtension junto con la biblioteca propia de Metadrop (metadrop/behat-contexts), que añade utilidades de depuración y capturas de pantalla.

  1. behat.yml
    1. Parámetros básicos
    2. Contextos «Suite»
    3. Regiones
  2. Host virtual
  3. Contextos
    1. Biblioteca Metadrop (GitHub)
    2. Integración de contextos

Ejecución y pasos personalizados

Ejecutamos la suite y aprendemos a leer la salida: pasos que pasan, que fallan, que quedan pendientes porque no coincide ninguna definición, y que se omiten porque un paso anterior falló. Desde ahí puedes filtrar por etiquetas o comprobar la configuración con una ejecución en seco. Cuando ningún paso existente encaja, escribe los tuyos en el contexto del proyecto — con parámetros, apoyándose en la API de Drupal y en XPath — guardando los reutilizables en librerías compartidas en lugar de acumularlos en FeatureContext.

  1. Ejecución de pruebas
    1. Guzzle
    2. Selenium (Javascript)
  2. Desarrollo de pasos personalizados
    1. Pasos simples
    2. Pasos con parámetros
    3. API de Drupal
    4. Introducción a XPath
    5. Casos prácticos
Las respuestas se generan automáticamente mediante IA y pueden no ser precisas.