Está en la página 1de 21

Lenguaje Gherkin

Estructura Básica de ejecución en Cucumber

Runner
(Clase principal)

Lee e interpreta Ejecuta lo interpretado


aplicando

Archivo
StepDefinition
Feature (Clase de métodos)
(Lenguaje Gherkin)
Feature
• Representa una funcionalidad del software a probar.
• Se crea un archivo independiente por cada funcionalidad, no se integra
las pruebas de todas las funcionalidades en un solo archivo .feature
• La palabra reservada Feature: va al inicio de cada archivo .feature seguido
del nombre de la funcionalidad o la historia de usuario ideal de la
funcionalidad en la que se basa.
• Seguido de esta, se redactan los escenarios que se pueden probar de esa
funcionalidad.
Historias de Usuario
Scenario
• Representa un camino de prueba o modo de uso de la funcionalidad.
• La palabra reservada Scenario: declara el inicio de un Escenario y finaliza
cuando aparezca de nuevo, ya que declara el inicio del escenario
siguiente.
• Seguida de la palabra Scenario: se escribe el nombre del modo de uso de
la funcionalidad o la historia de usuario que aplica.
• Se compone de pasos o Steps, los cuales se representan por las palabras
reservadas Given, When, Then y por los comodines And, But, y *.
• Se puede emplear la palabra Example: como sinónimo de Scenario:
Given, When y Then
• Representan la estructura mínima que debe tener un Scenario.
• Deben seguir cierto orden para que la redacción posea sentido.
• Given representa una precondición que debe cumplirse para iniciar a probar la funcionalidad.
• When representa una acción que ejecuta la funcionalidad en prueba.
• Then representa una condición que se debe cumplir después de ejecutada la acción.

Given When Then


(Precondición) (Acción) (Validación)
And, But, *
• Representan palabras que pueden sustituir a Given, When y Then y evitar la repetición.
• Se emplean para mejorar la redacción del escenario y sea mucho más legible.
• And se coloca cuando se quiere añadir un step que complemente al step anterior.
• But permite reemplazar a Then cuando la validación implica que no se observa un resultado
concreto.

Given And When And Then But


(Precondición) (Precondición) (Acción) (Acción) (Validación) (Validación)
Ejemplo de lo visto:
Ejemplo de lo visto:
Ejemplo de lo visto:
Scenario Outline y Examples
• Scenario Outline: Se emplea de la misma forma que Scenario: cuando se desea ejecutar ese mismo
escenario múltiples veces pero usando diferentes nombres o valores.
• Se complementa con la palabra reservada Examples:, la cual define el inicio de una tabla de valores
que se usarán en el Scenario Outline:
Background:
• Encontraremos en algunos Feature, que en todos sus escenarios se repiten muchos pasos del Given,
y resulta largos y complejos de leer.
• Background define los pasos de precondición que se repiten en todos los escenarios y evita la
duplicación de texto y simplifica el archivo Gherkin

Escenario 1 Background Given When Then


Feature
Escenario 2 Background Given When Then
Rule:
El propósito de la palabra clave Rule es representar una regla comercial que debe implementarse.
Proporciona información adicional para una función. Una regla se utiliza para agrupar varios escenarios
que pertenecen a esta regla empresarial. Una regla debe contener uno o más escenarios que ilustren la
regla en particular.
Estructura básica Background Given

de un archivo Given

Feature: Scenario When

Feature
Then

Given

When
Scenario
Outline
Then

Examples
Tags
• Son una forma de ejecutar los escenarios de prueba selectivamente.
• Se definen con una @ al inicio del tag.
• Se definen en el archivo Feature pero la selección de los escenarios ocurre en la clase Runner
Tags (Ejemplos de selección)
tags = {“@SmokeTest”} Ejecuta todos los escenarios bajo el tag @SmokeTest
tags = {“@gui”} Ejecuta todos los escenarios bajo el tag @gui, como en el ejemplo tenemos una feature bajo este tag, se
ejecutarán todos los escenarios de esa feature.
tags = {“@SmokeTest, @wip”} Ejecuta todos los escenarios que estén bajo el tag @SmokeTest o bajo el tag @wip
(condición OR).
tags = {“@SmokeTest”, “@RegressionTest”} Ejecuta todos los escenarios que estén bajo los tags @SmokeTest y
@RegressionTest (condición AND).
tags = {“~@SmokeTest”} ignora todos los escenarios bajo el tag @SmokeTest
tags = {“@RegressionTest, ~@SmokeTest”} ejecuta todos los escenarios bajo el tag @RegressionTest, pero ignora todos
los escenarios bajo el tag @SmokeTest
tags = {“@gui“, “~@SmokeTest”, “~@RegressionTest”} ignora todos los escenarios bajo el tag @SmokeTest y
@RegressionTest pero ejecuta todos los que estén bajo el tag “@gui”, si seguimos el ejemplo es como ejecutar todos los
escenarios de la feature que no estén bajo ningún otro tag.
Doc Strings
• Los Docs Strings son útiles para agregar cadenas de caracteres largas a un step de una forma más
prolija
• Para utilizarlos, se debe agregar el texto deseado en el step entre tres comillas dobles (“””)
Data Tables
Las Data Tables, en su estructura y utilidad, son muy similares a Scenario Outlines. Sus dos diferencias
principales son:
• Las Data Tables son definidas a nivel de un step y no a nivel del escenario, por lo cual sirven para
pasar datos de entrada a un solo paso dentro del escenario.
• No es necesario definirles un cabezal, aunque es útil y recomendable para poder referenciar los
datos con mayor facilidad.
Comentarios
Los comentarios de línea se declaran con el carácter ‘#’.
No son soportados comentarios de bloque en Gherkin.

Lenguaje:
Gherkin permite múltiples idiomas.
Se configura al inicio del archivo .feature usando un comentario de la forma:
#language: XX
Donde XX corresponde a la abreviatura del país del idioma que se va a utilizar.
Ejemplos:
#language: es para español
#language: en para inglés
#language: fr para francés
Muchas gracias.

También podría gustarte