Lenguaje Gherkin: Sintaxis, formato y ejemplos
⚡ Resumen inteligente
Gherkin es un lenguaje legible para el ámbito empresarial que describe el comportamiento del software sin detalles de implementación. Utiliza las palabras clave Given, When y Then para definir Cucumber Escenarios de prueba en lenguaje sencillo, que sirven como documentación viva y como esqueleto de las pruebas BDD automatizadas.

¿Qué es el lenguaje pepinillo?
Pepinillo es un lenguaje legible para el negocio que le ayuda a describir el comportamiento empresarial sin entrar en detalles de implementación. Es un lenguaje específico del dominio para definir pruebas en Cucumber formato. Utiliza un lenguaje sencillo para describir los casos de uso y permite a los usuarios eliminar los detalles lógicos de las pruebas de comportamiento.
El texto en Gherkin sirve como documentación y como estructura básica para tus pruebas automatizadas. El formato Gherkin se basa en la gramática TreeTop, disponible en más de 37 idiomas, lo que te permite escribir en Gherkin en más de 37 idiomas hablados. El script cumple dos funciones principales: documenta escenarios de usuario y proporciona la base para escribir pruebas BDD automatizadas.
¿Por qué pepinillo?
Sin un formato común y claro, los equipos técnicos y de negocio describen los requisitos de forma diferente, lo que provoca malentendidos. Gherkin ofrece a todos un vocabulario único y estructurado que se lee como un inglés común, pero que se corresponde directamente con pruebas ejecutables.
Sintaxis de pepinillo
Gherkin es un lenguaje orientado a líneas, al igual que YAML y PythonCada línea se denomina paso y comienza con una palabra clave. Se utilizan tabulaciones o espacios para la indentación. Se puede añadir un comentario en cualquier parte, pero debe comenzar con el signo #. El intérprete lee cada línea tras eliminar las palabras clave de Gherkin, como Given, When y Then.
Feature: Title of the Scenario Given [Preconditions or Initial Context] When [Event or Trigger] Then [Expected output]
Un documento Gherkin tiene la extensión .feature y es simplemente un archivo de prueba con una extensión descriptiva. Cucumber Lee el documento Gherkin y ejecuta una prueba para validar que el software se comporta como describe la sintaxis Gherkin.
Términos importantes utilizados en Gherkin
Las palabras clave principales son Característica, Antecedentes, Escenario, Dado, Cuando, Entonces, Y, Pero y Esquema del escenario. Cucumber No tiene reglas estrictas para nombrar los elementos, pero una convención de nomenclatura clara ayuda.
Elemento
El archivo debe tener la extensión .feature, y cada archivo de características debe describir solo una característica. La palabra clave Feature comienza con Características: seguido de un espacio y el nombre de la característica.
Escenario
Cada archivo de características puede tener múltiples escenarios, y cada escenario comienza con Escenario: seguido del nombre del escenario.
Fondo
La palabra clave Background añade contexto al escenario. Puede contener pasos comunes a todos los escenarios; la diferencia radica en que esos pasos se ejecutan antes de cada escenario.
Dado que los
La palabra clave Given coloca al sistema en un estado conocido antes de que el usuario comience a interactuar con él. Define la condición previa o el contexto:
Given I am on "/."
Cuando
La palabra clave When define la acción que realiza el usuario:
When I perform "Sign In."
Entonces
La palabra clave Then define el resultado observado después de la acción en el paso When. Solo debe verificar los cambios perceptibles:
Then I should see "Welcome Tom."
Y pero
Puede tener varios pasos de tipo Dado, Cuando o Entonces. Las palabras clave Y y Pero añaden pasos adicionales para facilitar la lectura:
And I enter "EmailAddress" with "tomjohn@gmail.com." But I should see "Welcome Tom."
Dado, Cuando, Entonces, Y y Pero son pasos de prueba. El intérprete no genera un error si los intercambias, pero el escenario no se leerá con sentido, así que usa cada palabra clave para el propósito previsto.
Ejemplos de pepinillos
Ejemplo 1: Una función de inicio de sesión para un sitio de redes sociales.
Feature: Login functionality of a social networking site Given I am a registered user When I enter my username And I enter my password Then I should be redirected to the home page
Gherkin analiza cada paso escrito en el archivo de características, y los pasos en el archivo de características deben coincidir con los del archivo de definición de pasos.
Ejemplo 2: Un escenario de autenticación de usuario con un fondo.
Feature: User Authentication Background: Given the user is already registered on the website Scenario: Successful login Given the user is on the login page When the user inputs the correct email address And the user inputs the correct password And the user clicks the Login button Then the user should be authenticated And the user should be redirected to their dashboard
Mejores prácticas de uso de pepinillo
- Cada escenario debe ejecutarse por separado y de forma independiente.
- Cada función debe poder ejecutarse de forma independiente.
- La información sobre los pasos debe mostrarse de forma independiente.
- Conecte sus escenarios con sus requisitos y track qué escenarios corresponden a cada requisito.
- Crea pasos modulares y fáciles de entender, y combina escenarios comunes.
- Describe qué hace el sistema, no cómo lo hace.
Ventajas del pepinillo
- Gherkin es lo suficientemente sencillo como para que lo entiendan personas que no son programadores.
- Los programadores pueden usarlo como una base sólida para comenzar sus pruebas.
- Facilita la comprensión de las historias de usuario y se centra en los requisitos del negocio.
- Tanto los ejecutivos como los desarrolladores pueden leer el mismo guion.
- Los casos de prueba de Gherkin vinculan las pruebas de aceptación directamente con las pruebas automatizadas.
- El estilo de escritura facilita la reutilización del código en diferentes pruebas.
Desventajas del pepinillo
- Requiere un alto nivel de compromiso y colaboración empresarial.
- Puede que no funcione bien en todos los casos.
- Las pruebas mal redactadas pueden aumentar el coste de mantenimiento de las mismas.
