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
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.
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