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.
