Lenguaje Gherkin: formato, sintaxis y prueba de Gherkin en Cucumber

¿Qué es el lenguaje pepinillo?

Pepinillo Es un lenguaje legible para empresas que le ayuda a describir el comportamiento empresarial sin entrar en detalles de implementación. Es un lenguaje específico del dominio para definir pruebas en Cucumber Formato para especificaciones. Utiliza lenguaje sencillo para describir casos de uso y permite a los usuarios eliminar detalles lógicos de las pruebas de comportamiento.

El texto en idioma Gherkin actúa como documentación y esqueleto de sus pruebas automatizadas. El formato Gherkin se basa en TreeTop Grammar, que existe en más de 37 idiomas. Por lo tanto, puedes escribir tu pepinillo en más de 37 idiomas hablados.

Este script tiene dos propósitos principales:

  • Escenarios de usuario de documentos
  • Escribir una prueba automatizada (BDD)

¿Por qué pepinillo?

La necesidad de Gherkin se puede explicar fácilmente con las siguientes imágenes

Antes del pepinillo

Antes del pepinillo

Después del pepinillo

Después del pepinillo

Sintaxis de pepinillo

Gherkin es un lenguaje orientado a líneas como YAML y Python. Cada línea se llama paso y comienza con una palabra clave y finaliza con una parada. Se utilizan tabuladores o espacios para la sangría.

En este script, se puede agregar un comentario en cualquier lugar que desee, pero debe comenzar con un signo #. Leyó cada línea después de eliminar las palabras clave de Ghrekin como se indica, cuándo, entonces, etc.

Los pasos típicos de Gherkin parecen

Gherkin Scripts: conecta el concepto humano de causa y efecto con el concepto de software de entrada/proceso/salida.

Sintaxis de pepinillo

Feature: Title of the Scenario
Given [Preconditions or Initial Context]
When [Event or Trigger]
Then [Expected output]

Un documento Gherkin tiene una extensión .feature y simplemente un archivo de prueba con una extensión elegante. Cucumber lee el documento Gherkin y ejecuta una prueba para validar que el software se comporta según la sintaxis de Gherkin.

Términos importantes utilizados en Gherkin

  • Feature
  • Antecedentes
  • Guión
  • Dado que los
  • Cuándo
  • Entonces
  • Y
  • Pero
  • Ejemplos de esquemas de escenarios

La convención de nomenclatura se utiliza para el nombre de la función. Sin embargo, no hay reglas establecidas en Cucumber sobre nombres.

Feature

El archivo debe tener la extensión .feature y cada archivo de características debe tener solo una característica. La palabra clave de la característica estará con la Característica: y después de agregar, se escribirá un espacio y el nombre de la característica.

Guión

Cada archivo de características puede tener múltiples escenarios y cada escenario comienza con Escenario: seguido del nombre del escenario.

Antecedentes

La palabra clave de fondo le ayuda a agregar algo de contexto al escenario. Puede contener algunos pasos del escenario, pero la única diferencia es que debe ejecutarse antes de cada escenario.

Dado que los

El uso de la palabra clave dada es poner el sistema en un estado familiar antes de que el usuario comience a interactuar con el sistema. Sin embargo, puede omitir escribir las interacciones del usuario en los pasos dados si se dan en el paso "Condición previa".

Sintaxis:

Given
Given - a test step that defines the 'context
Given I am on "/."

Cuándo

Cuando el paso es definir acción realizada por el usuario.

Sintaxis:

When
A When - a test step that defines the 'action' performed
When I perform "Sign In."

Entonces

El uso de la palabra clave "entonces" es para ver el resultado después de la acción en cuando paso. Sin embargo, sólo puedes verificar cambios notables.

Sintaxis:

 Then
Then - test step that defines the 'outcome.'
Then I should see "Welcome Tom."

Y pero

Es posible que tenga varios datos cuando o Entonces.

Sintaxis:

But
A But - additional test step which defines the 'action' 'outcome.'
But I should see "Welcome Tom."
And - additional test step that defines the 'action' performed
And I write  "EmailAddress" with "Tomjohn@gmail.com."

Dado, Cuándo, Entonces y pero son pasos de prueba. Puedes usarlos indistintamente. El intérprete no muestra ningún error. Sin embargo, seguramente no tendrán ningún “sentido” cuando se lean.

Términos importantes utilizados en Gherkin
Términos importantes utilizados en Gherkin
Given The login page is opening
When I input username, password and click the Login button 
Then I am on the Homepage

Ejemplos de pepinillos

Ejemplo 1:

Feature:  Login functionality of social networking site Facebook. 
Given:  I am a facebook user. 
When: I enter username as username. 
And I enter the password as the password 
Then I should be redirected to the home page of facebook 

El escenario mencionado anteriormente se refiere a una función llamada inicio de sesión de usuario.

Gherkin analizará cada paso escrito en el archivo de definición de pasos. Por lo tanto, los pasos se dan en el archivo de características y el archivo de definición de pasos debe coincidir.

Ejemplo 2:

Feature: User Authentication Background:
Given the user is already registered to the website Scenario:
Given the user is on the login page
When the user inputs the correct email address
And the user inputs the correct password
And the user clicks the Login button
Then the user should be authenticated
And the user should be redirected to their dashboard
And the user should be presented with a success message 

Mejores prácticas de uso de Gherkin

  • Cada escenario debe ejecutarse por separado.
  • Cada característica debería poder ejecutarse junto
  • La información de los pasos debe mostrarse de forma independiente.
  • Conecte sus escenarios con sus requisitos
  • Mantenga un seguimiento completo de qué escenarios deben incluirse en un documento de requisitos
  • Cree pasos modulares y fáciles de entender.
  • Intenta combinar todos tus escenarios comunes.

Ventajas del pepinillo

  • Gherkin es lo suficientemente simple como para que lo entiendan los no programadores
  • Los programadores pueden utilizarlo como una base muy sólida para iniciar sus pruebas.
  • Hace que las Historias de usuarios sean más fáciles de digerir
  • La escritura de Gherkin puede ser fácilmente comprendida por ejecutivos y desarrolladores de negocios.
  • Gherkin Testing se enfoca en los requisitos comerciales
  • Una proporción significativa de las especificaciones funcionales está escrita como historias de usuario.
  • No es necesario ser un experto para comprender el pequeño conjunto de comandos de Gherkin
  • Los casos de prueba de Gherkin vinculan las pruebas de aceptación directamente con las pruebas automatizadas
  • El estilo de escritura de casos de prueba hace que sea más fácil reutilizar el código en otras pruebas.

Desventajas del pepinillo

  • Requiere un alto nivel de compromiso y colaboración empresarial.
  • Puede que no funcione bien en todos los escenarios
  • Las pruebas mal escritas pueden aumentar fácilmente el costo de mantenimiento de las pruebas

Resum

  • Gherkin es el formato para las especificaciones del pepino.
  • Gherkin es un lenguaje orientado a líneas como YAML y Python
  • Gherkin Scripts conecta el concepto humano de causa y efecto con el concepto de software de entrada/proceso y salida.
  • Característica, fondo, escenario, dado, cuándo, entonces y pero se utilizan de manera importante en Gherkin
  • En Gherkin, cada escenario debe ejecutarse por separado.
  • La mayor ventaja de Gherkin es lo suficientemente simple como para que la comprendan los no programadores.
  • Es posible que la prueba Gherkin no funcione bien en todos los tipos de escenarios