Glosario · Automatización de UI
Gherkin
También llamado: lenguaje Gherkin, sintaxis Gherkin, Given When Then, Dado Cuando Entonces
Definición
La sintaxis de texto plano Given-When-Then (Dado-Cuando-Entonces) para escribir escenarios BDD en archivos .feature, que herramientas como Cucumber ejecutan como pruebas.
Gherkin es un lenguaje pequeño y estructurado para describir el comportamiento del software mediante ejemplos. Cada archivo tiene la extensión .feature y contiene una Feature compuesta por Scenarios, y cada escenario es una lista de pasos que empiezan por Given (contexto), When (acción) y Then (resultado esperado). Herramientas como Cucumber asocian cada paso con una step definition (definición de paso) en el código, de modo que el mismo texto es a la vez documentación y prueba automatizada.
Ejemplo
Feature: Password reset
Background:
Given a registered user "ada@example.com"
Scenario: Reset link is sent for a known email
When she requests a password reset for "ada@example.com"
Then a reset email is sent to "ada@example.com"
And the link expires after 30 minutes
Scenario Outline: Weak passwords are rejected
When she sets her new password to "<password>"
Then she sees the error "<message>"
Examples:
| password | message |
| abc | Use at least 12 characters |
| password | This password is too common |
Y una step definition correspondiente en Java con Cucumber:
@When("she sets her new password to {string}")
public void setNewPassword(String password) {
resetPage.setPassword(password);
}
Palabras clave que conviene conocer
And/Butcontinúan el tipo de paso anterior, para mejorar la legibilidad.Backgroundse ejecuta antes de cada escenario del archivo. Mantenlo corto.Scenario OutlineconExamplesejecuta el escenario una vez por cada fila de la tabla: son pruebas basadas en datos en formato Gherkin.- Las etiquetas (tags) como
@smokeo@wipencima de un escenario permiten seleccionar subconjuntos para ejecutar. Rule(Gherkin 6 y posteriores) agrupa escenarios bajo la regla de negocio que ilustran.
Cómo escribir buenos escenarios
- Un comportamiento por escenario. Varios pares
When/Thensuelen indicar que son dos escenarios. - Declarativo, no imperativo. “When she requests a password reset” es mejor que tres pasos sobre escribir en campos y pulsar botones.
- Valores concretos. Los ejemplos reales (“120.00”, “Gold”) detectan malentendidos que las frases vagas (“un pedido grande”) ocultan.
- Tercera persona o un personaje consistente. Mezclar “yo”, “el usuario” y personajes con nombre hace que la biblioteca de pasos crezca sin control.