Ir al contenido

Gherkin DSL y Step Bindings

Testform utiliza un parser estricto basado en la especificacion estandar de Cucumber/Gherkin v6+, permitiendo que los escenarios sirvan tanto como documentacion viva como como codigo ejecutable.

Testform soporta todas las palabras clave estandar de Gherkin en espanol e ingles:

Palabra Clave Proposito
Feature / Caracteristica Define el limite del modulo o funcionalidad bajo prueba.
Rule / Regla Agrupa multiples escenarios bajo una regla de negocio explicita.
Background / Antecedentes Pasos comunes que se ejecutan antes de cada escenario en el archivo.
Scenario / Escenario Un flujo de prueba concreto e independiente.
Scenario Outline / Esquema del Escenario Escenario parametrizado ejecutado multiples veces con datos de una tabla Examples.
Examples / Ejemplos Matriz de datos para un Scenario Outline.
Given / Dado Establece el contexto o estado inicial precondicion.
When / Cuando Describe la accion desencadenante realizada por el usuario o sistema.
Then / Entonces Describe la asercion, resultado observable o efecto secundario esperado.
And / Y, But / Pero Conectores logicos para encadenar multiples pasos sin repetir la palabra clave previa.

Los steps de Testform admiten expresiones de parametros tipadas:

Given el usuario tiene un saldo de {int} dolares
When transfiere {float} a la cuenta "{string}"
Then el sistema responde con el codigo de estado {int}
  • {int}: Numeros enteros positivos o negativos (ejemplo: 42, -5).
  • {float}: Numeros decimales de punto flotante (ejemplo: 19.99).
  • {string}: Cadenas de texto encerradas entre comillas dobles (ejemplo: "admin@empresa.com").
  • {word}: Una sola palabra sin espacios ni comillas (ejemplo: activo).

Cuando un paso requiere parametros complejos, puedes adjuntar una tabla de datos directamente debajo del step:

Scenario: Registro masivo de productos en catalogo
Given el administrador tiene permisos de catalogo
When registra los siguientes productos:
| sku | nombre | precio | stock |
| PROD-001 | Teclado Mecanico | 89.90 | 50 |
| PROD-002 | Raton Ergonomico | 45.00 | 120 |
| PROD-003 | Monitor UltraWide | 349.00 | 15 |
Then los 3 productos deben figurar en el inventario activo

Para cargas utiles JSON, payloads XML o bloques extensos de texto, utiliza docstrings con triple comilla:

Scenario: Solicitud de webhook con payload JSON
When el servicio externo emite un POST a "/api/webhooks" con el payload:
"""json
{
"event": "payment_completed",
"transaction_id": "tx_99812",
"amount": 149.99,
"currency": "USD"
}
"""
Then el servidor debe responder con HTTP 200

Testform introduce directivas a traves de tags especiales para controlar el comportamiento del motor:

  • @ignore: Excluye el escenario o archivo de la planificacion y conciliacion.
  • @flaky: Marca un escenario como inestable para reportes y filtros de suite.
  • @manual: Indica que el caso de prueba esta disenado exclusivamente para ejecucion humana.
  • @module(path): Importa un modulo reutilizable de pasos Gherkin compartidos.