Gherkin | Implemented in Ruby

Gherkin es un lenguaje legible de forma natural que se especializa en la descripción de comportamiento de un programa o como se denomina bajo su sintaxis un “feature”.

Nos da la habilidad de remover la lógica de nuestras pruebas de comportamiento y expresarlos de una forma más legible.

La sintaxis de Gherkin

Es un lenguaje orientado en líneas que utilizan indentación para definir su estructura. El final de las líneas determina el final de una sentencia, se utiliza tanto el TAB como el espacio para darle estructura al código y Cada línea inicia con una palabra clave.

Entre las palabras claves que se pueden utilizar están:

Feature

Esta parte expresa la necesidad del código, básicamente describe lo que se quiere lograr, por ejemplo, un feature pude ser, “Mostrar anagramas de una palabra” o “Realizar alguna operación matemática”

Características de los features:

  • A su vez un feature está compuesto por varios escenarios (scenario).
  • Es posible añadir tags a los features y a los escenarios para agruparlos de forma independiente a la estructura establecida anteriormente, por ejemplo: @important, @billing, @word.
  • Es posible para evitar tareas repetitivas utilizar un “scenario outline” el cual permite mediante un patrón correr un escenario múltiples veces con valores distintos, por ejemplo, podemos tener los siguientes argumentos.
Example of “scenario outline”
  • Otra característica es la habilidad de tener un background antes de correr cada escenario. Background es básicamente un escenario sin descripción que corre antes de cada escenario que se encuentre por debajo de él.

Scenarios

Este es lo que conforma un feature, este posee a su vez un título que es opcional y un conjunto de keywords por debajo de el que se conocen como steps. En estos se encuentra los pasos que seguirán nuestras pruebas y el valor que este debe de esperar al final.

Los keywords que este puede definir a dentro de él son: Given, When, Then, But, And.

Los cuales describiremos a continuación. Cada uno de estos define lo que anterior mente mencionábamos un step, que está limitado por una sola línea.

Given

Le da contexto a l escenario que vamos a probar, pueden ser considerados como prerrequisitos de nuestro escenario antes de comenzar a interactuar con el.

Given example

When

Este determina acciones primordiales que debe de llevar acabo el usuario que expresan un estado en nuestra ejecución que debe de cumplirse.

When example

Then

Este paso expresa que resultado se espera de los pasos previos realizados, verifica que los pasos realizados con anterioridad fueron ejecutados de forma satisfactoria comparándolo con el resultado ya predefinido por quien está escribiendo el documento.

Then example

And|But

Estas palabras claves son útiles al momento de añadir múltiples When, Then y Given pasos de esa forma aumentar la legibilidad del código.

And example

The explanation and code demonstration

Like what you read? Give Hector Acosta a round of applause.

From a quick cheer to a standing ovation, clap to show how much you enjoyed this story.