Gherkin es un lenguaje de dominio específico utilizado para describir el comportamiento del software de manera comprensible tanto para desarrolladores como para no desarrolladores. Es la base de Cucumber, una herramienta que permite la ejecución de pruebas de aceptación escritas en Gherkin. En esta sección, exploraremos la sintaxis básica de Gherkin y cómo se utiliza para escribir escenarios de prueba.
Conceptos Clave de Gherkin
-
Lenguaje Natural: Gherkin está diseñado para ser leído y entendido por personas no técnicas. Utiliza un lenguaje natural estructurado que facilita la colaboración entre equipos técnicos y de negocio.
-
Archivos de Características: Los escenarios de Gherkin se escriben en archivos con la extensión
.feature. Cada archivo puede contener múltiples escenarios que describen diferentes comportamientos del sistema. -
Palabras Clave: Gherkin utiliza palabras clave específicas para estructurar los escenarios:
Feature: Describe la funcionalidad que se está probando.Scenario: Define un caso de prueba específico.Given,When,Then: Estructuran los pasos de un escenario.And,But: Se utilizan para añadir pasos adicionales.
-
Comentarios: Se pueden añadir comentarios en los archivos de características utilizando el símbolo
#.
Estructura Básica de un Archivo de Características
Un archivo de características típico en Gherkin tiene la siguiente estructura:
Feature: Título de la Funcionalidad
Una breve descripción de la funcionalidad.
Scenario: Título del Escenario
Given una condición inicial
When se realiza una acción
Then se espera un resultado
Scenario: Otro Escenario
Given otra condición inicial
When se realiza otra acción
Then se espera otro resultadoEjemplo Práctico
Supongamos que estamos probando una funcionalidad de inicio de sesión en una aplicación web. Un archivo de características podría verse así:
Feature: Inicio de Sesión
Para acceder a mi cuenta
Como usuario registrado
Quiero poder iniciar sesión en la aplicación
Scenario: Inicio de sesión exitoso
Given el usuario está en la página de inicio de sesión
When el usuario ingresa su nombre de usuario y contraseña correctos
Then el usuario debería ser redirigido a la página de inicio
Scenario: Inicio de sesión fallido
Given el usuario está en la página de inicio de sesión
When el usuario ingresa un nombre de usuario o contraseña incorrectos
Then el usuario debería ver un mensaje de errorEjercicio Práctico
Ejercicio 1: Crear un Archivo de Características
Crea un archivo de características para una funcionalidad de "Registro de Usuario" en una aplicación. Incluye al menos dos escenarios: uno para un registro exitoso y otro para un registro fallido.
Solución:
Feature: Registro de Usuario
Para crear una nueva cuenta
Como nuevo usuario
Quiero poder registrarme en la aplicación
Scenario: Registro exitoso
Given el usuario está en la página de registro
When el usuario ingresa un nombre de usuario, correo electrónico y contraseña válidos
Then el usuario debería recibir un mensaje de confirmación de registro
Scenario: Registro fallido
Given el usuario está en la página de registro
When el usuario ingresa un correo electrónico ya registrado
Then el usuario debería ver un mensaje de error indicando que el correo ya está en usoConclusión
En esta sección, hemos aprendido los conceptos básicos de la sintaxis de Gherkin y cómo estructurar archivos de características para describir el comportamiento del software. La claridad y simplicidad de Gherkin facilitan la colaboración entre diferentes partes interesadas en un proyecto. En la próxima sección, profundizaremos en cómo escribir tu primer escenario utilizando esta sintaxis.
BDD con Cucumber y Gherkin
Módulo 1: Introducción a BDD
Módulo 2: Comenzando con Cucumber
- Configuración del Entorno
- Creando Tu Primer Proyecto Cucumber
- Entendiendo los Archivos de Características
Módulo 3: Escribiendo Escenarios Gherkin
Módulo 4: Definiciones de Pasos
Módulo 5: Técnicas Avanzadas de Gherkin
Módulo 6: Integrando Cucumber con el Desarrollo
- Integración con Integración Continua
- Usando Cucumber con Diferentes Lenguajes
- Mejores Prácticas para BDD en Equipos
Módulo 7: Características Avanzadas de Cucumber
Módulo 8: Aplicaciones de BDD en el Mundo Real
- Estudio de Caso: BDD en una Aplicación Web
- Estudio de Caso: BDD en una Arquitectura de Microservicios
- Desafíos y Soluciones en BDD
