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: