Saltar al contenido
SDETRole
SDETRole

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 / But continúan el tipo de paso anterior, para mejorar la legibilidad.
  • Background se ejecuta antes de cada escenario del archivo. Mantenlo corto.
  • Scenario Outline con Examples ejecuta el escenario una vez por cada fila de la tabla: son pruebas basadas en datos en formato Gherkin.
  • Las etiquetas (tags) como @smoke o @wip encima 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/Then suelen 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.

Escribe para buscar en todo SDETRole.

Búsqueda de texto completo con Pagefind · se ejecuta en tu navegador Abrir la página de búsqueda →