Saltar al contenido principal
Página

Tema 2.2 - Componentes del lenguaje Gherkin

Feature (Característica):

Proporciona el encabezado o el marco de la característica funcional a nivel general. Tiene un título que debe ser claro y explícito, así como un texto con una descripción que especifique:

  • Quién (actor - rol) es la parte interesada de la historia
  • Qué efecto se quiere en la historia, desde el punto de vista del interesado
  • Qué se obtendrá como resultado a partir de dicho efecto

Estos tres elementos son los que se conoce como la Narrativa de la historia de usuario.


Scenarios (Escenarios): 

Una historia de usuario contiene criterios de aceptación, que en el contexto de Gherkin serán nuestros escenarios, es decir, un escenario es un caso específico de la narrativa y el cual tiene la siguiente estructura:

  • Given – Es una precondición la cual se asume como verdadera al inicio del escenario. Típicamente es algo que ocurrió en el pasado y su propósito es poner el sistema en un estado conocido antes que el usuario interactúe con el sistema. Podría ser más de una precondición, en cuyo caso se debe hacer uso de las palabras And o But de manera de hacerlo más fácil de leer.
  • When - Los pasos a seguir o que son causa de la precondición. De acuerdo a la documentación de Gherkin se recomienda no tener más de un When ya que usualmente esto es signo que el escenario se puede dividir en múltiples escenarios.
  • Then - El resultado esperado.


Cada uno de los anteriores se conoce como Steps del escenario.

Cuando es necesario indicar más de un Given, When o Then se puede hacer uso de las palabras And y But. Su uso aumenta la legibilidad y pueden ser usadas en vez de definir repetidas veces cualquiera de los anteriores steps. Veamos un ejemplo:




Notas: 

  1. Gherkin tiene soporte para diversos lenguajes. Su idioma por defecto es el inglés. Para indicarle a Gherkin que se desea trabajar con un idioma diferente, basta con agregar la siguiente línea al inicio del archivo:  “# language: es” en donde la parte después de los dos puntos indica el lenguaje. Para ver el detalle de los lenguajes soportados ver el siguiente link
  2. Cuando se trabaja en inglés no es necesario indicar explícitamente que se desea trabajar en este idioma ya que éste es el idioma por defecto.
  3. Cuando se trabaja con un idioma diferente al inglés, es necesario asegurar que todo el proyecto soportará dicho lenguaje, ya que hay caracteres como la ñ, acentos y demás que pueden hacer fallar la ejecución de nuestra prueba si no están bien configurados.


But: Se usa para agregar comentarios de tipo negativo, cuando se agrega una condición de tipo but debe de ser opuesta a la premisa que la prueba que se está tratando de establecer. Consideraciones para el uso de But.

  • Se usa parecido que el Then pero para mostrar algo negativo
  • But es usado al final de un escenario


Ejemplos:

  • But no se muestra la posición global del cliente
  • But el cliente no es autenticado correctamente
  • Then aumentará el saldo de la cuenta ‘AAA’
  • But no aumentará el saldo de la cuenta ‘BBB’


Background (Antecedentes): 

Cuando en un feature se tienen varios escenarios en los que la precondición (given) es el mismo se hace uso de la palabra Background, la cual contendrá esa precondición que es común haciendo que no sea necesario repetirla en cada uno de los given de cada escenario. Un given escrito en el background se ejecutará antes de cada escenario, es decir, el background se ejecuta en la prueba el número de escenarios que encuentre en el feature.




Tips para el uso de background:

  • No es recomendable usarlo para estados complicados, a menos que dicho estado sea algo que el cliente necesite conocer.
  • La sección del background debe ser lo más corta posible.
  • Haga uso de nombres que sean dicientes.
Última modificación: martes, 22 de marzo de 2022, 15:00