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.

  • 📝 Lenguaje sencillo: Gherkin describe el comportamiento de forma que quienes no son programadores puedan leer y escribir pruebas.
  • ???? Cucumber: Cucumber Lee los archivos .feature y ejecuta los pasos de Gherkin como pruebas.
  • 🔑 Dado-Cuando-Entonces: Dado un contexto establecido, cuando se desencadena una acción, entonces se afirma el resultado.
  • 🧱 Keywords: Característica, Antecedentes, Escenario, Y, y Pero estructuran cada escenario.
  • ✅ Mejora la práctica: Mantén cada escenario independiente y describe el qué, no el cómo.
  • 🤖 Asistencia de IA: Las herramientas de IA elaboran escenarios de tipo Dado-Cuando-Entonces a partir de requisitos simples.

Lenguaje Gherkin en Cucumber

¿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.

Preguntas Frecuentes

BDD es una práctica ágil en la que los equipos describen el comportamiento esperado en lenguaje sencillo antes de programar. Los escenarios de Gherkin capturan ese comportamiento para que los miembros del equipo de negocio y los técnicos compartan una misma comprensión.

Gherkin es la sintaxis en lenguaje sencillo para escribir escenarios. Cucumber Es una de varias herramientas que leen archivos .feature de Gherkin y ejecutan los pasos en su aplicación.

Un esquema de escenario reproduce los mismos pasos con varios conjuntos de datos listados en una tabla de ejemplos. Esto evita duplicar un escenario para cada conjunto de valores de entrada.

Una definición de paso asigna cada paso de Gherkin al código que lo ejecuta. Cuando Cucumber Lee un paso, encuentra la definición correspondiente y ejecuta ese método en la aplicación.

Los tres amigos son un propietario del producto, un desarrollador y un tester que revisan una funcionalidad juntos. Su visión combinada produce escenarios Gherkin más claros y completos que los que podría generar cualquiera de los roles por separado.

Además de CucumberGherkin cuenta con el apoyo de SpecFlow para .NET y comportarse para Python, entre otros marcos de trabajo BDD.

Sí. Los asistentes de IA convierten una historia de usuario en borradores de escenarios de tipo Dado-Cuando-Entonces, sugieren casos límite y mantienen la coherencia en la redacción, aunque un evaluador debería revisarlos para comprobar su exactitud.

Las herramientas de IA interpretan los requisitos de forma clara y automatizan el primer borrador de los pasos estructurados de tipo Dado-Cuando-Entonces. Esto acelera la redacción, pero los equipos aún deben perfeccionar el texto para que se ajuste a los criterios de aceptación reales.

Resumir este post con: