Gherkin és un llenguatge de domini específic utilitzat per escriure escenaris de prova en el desenvolupament guiat per comportament (BDD). La seva sintaxi és senzilla i llegible per humans, la qual cosa permet que tant desenvolupadors com no desenvolupadors puguin entendre fàcilment les especificacions de les proves.
Conceptes clau de Gherkin
- Llenguatge llegible per humans: Gherkin està dissenyat per ser comprensible per qualsevol persona, independentment de la seva experiència tècnica.
 - Estructura basada en paraules clau: Utilitza paraules clau específiques per definir l'estructura dels escenaris.
 - Suport multillenguatge: Gherkin suporta múltiples idiomes, permetent que les proves es puguin escriure en l'idioma que millor s'adapti a l'equip.
 
Estructura bàsica de Gherkin
Un fitxer de característiques Gherkin es compon de diverses seccions clau:
- Feature (Característica): Descriu la funcionalitat que s'està provant.
 - Scenario (Escenari): Defineix un cas de prova específic.
 - Given (Donat), When (Quan), Then (Llavors): Són les paraules clau que defineixen els passos d'un escenari.
 
Exemple de fitxer de característiques
Feature: Login functionality
  Scenario: Successful login with valid credentials
    Given the user is on the login page
    When the user enters valid credentials
    Then the user should be redirected to the dashboardExplicació de l'exemple
- Feature: "Login functionality" descriu la funcionalitat general que s'està provant.
 - Scenario: "Successful login with valid credentials" és un cas de prova específic dins de la funcionalitat de login.
 - Given: Defineix l'estat inicial o les precondicions ("the user is on the login page").
 - When: Descriu l'acció que es realitza ("the user enters valid credentials").
 - Then: Defineix el resultat esperat ("the user should be redirected to the dashboard").
 
Exercici pràctic
Objectiu: Escriure un escenari Gherkin per a la funcionalitat de registre d'un usuari.
Instruccions
- Crea un fitxer de característiques anomenat 
register.feature. - Defineix una característica anomenada "User registration".
 - Escriu un escenari per a un registre d'usuari amb dades vàlides.
 - Utilitza les paraules clau Given, When, Then per estructurar l'escenari.
 
Solució
Feature: User registration
  Scenario: Successful registration with valid data
    Given the user is on the registration page
    When the user enters valid registration details
    Then the user should see a confirmation messageErrors comuns i consells
- Evitar la complexitat: Mantingues els escenaris simples i directes. Cada escenari hauria de provar un sol comportament.
 - Reutilització de passos: Si diversos escenaris comparteixen passos comuns, considera crear definicions de passos reutilitzables.
 - Claredat en els noms: Utilitza noms clars i descriptius per a les característiques i escenaris.
 
Conclusió
La sintaxi Gherkin proporciona una manera clara i estructurada d'escriure escenaris de prova que són fàcils de llegir i entendre per a tots els membres de l'equip. En el següent tema, explorarem com escriure el teu primer escenari utilitzant aquesta sintaxi.
BDD amb Cucumber i Gherkin
Mòdul 1: Introducció al BDD
Mòdul 2: Començar amb Cucumber
- Configuració de l'entorn
 - Creació del teu primer projecte Cucumber
 - Comprensió dels fitxers de característiques
 
Mòdul 3: Escriure escenaris Gherkin
Mòdul 4: Definicions de passos
Mòdul 5: Tècniques avançades de Gherkin
Mòdul 6: Integració de Cucumber amb el desenvolupament
- Integració amb la integració contínua
 - Utilitzant Cucumber amb diferents llenguatges
 - Millors pràctiques per al BDD en equips
 
Mòdul 7: Funcions avançades de Cucumber
Mòdul 8: Aplicacions reals del BDD
- Estudi de cas: BDD en una aplicació web
 - Estudi de cas: BDD en una arquitectura de microserveis
 - Reptes i solucions en el BDD
 
