En aquest tema, explorarem la sintaxi bàsica de Gherkin utilitzada per escriure escenaris de comportament en BDD: les paraules clau Given, When, i Then. Aquestes paraules clau ajuden a estructurar els escenaris de manera clara i comprensible tant per a desenvolupadors com per a no desenvolupadors.
Conceptes Clau
- 
Given (Donat)
- Defineix el context inicial de l'escenari.
 - S'utilitza per establir l'estat del sistema abans que es produeixi l'acció principal.
 - Exemple: "Donat que l'usuari està registrat al sistema".
 
 - 
When (Quan)
- Descriu l'acció o esdeveniment que es realitza.
 - Representa l'acció principal que desencadena el comportament que volem provar.
 - Exemple: "Quan l'usuari inicia sessió amb credencials vàlides".
 
 - 
Then (Aleshores)
- Especifica el resultat esperat després de l'acció.
 - Utilitzat per verificar que el sistema es comporta com s'espera.
 - Exemple: "Aleshores l'usuari hauria de veure el seu tauler de control".
 
 
Exemple Pràctic
Vegem un exemple complet d'un escenari utilitzant Given, When, i Then:
Feature: Inici de sessió d'usuari
  Scenario: Inici de sessió amb credencials vàlides
    Given l'usuari està a la pàgina d'inici de sessió
    When l'usuari introdueix el nom d'usuari "johndoe" i la contrasenya "password123"
    Then l'usuari hauria de ser redirigit al tauler de control
    And hauria de veure un missatge de benvingudaExplicació de l'Exemple
- Given: Estableix que l'usuari es troba a la pàgina d'inici de sessió, preparant el context per a l'acció.
 - When: Descriu l'acció de l'usuari d'introduir les credencials.
 - Then: Verifica que l'usuari és redirigit correctament i veu un missatge de benvinguda.
 - And: Utilitzat per afegir més verificacions al resultat esperat.
 
Exercici Pràctic
Escriu un escenari utilitzant Given, When, Then per a la funcionalitat de restabliment de contrasenya.
Solució Proposada
Feature: Restabliment de contrasenya
  Scenario: Restabliment de contrasenya amb correu electrònic vàlid
    Given l'usuari està a la pàgina de restabliment de contrasenya
    When l'usuari introdueix el correu electrònic "[email protected]"
    Then l'usuari hauria de rebre un correu electrònic de restabliment de contrasenya
    And hauria de veure un missatge de confirmació a la pàginaErrors Comuns i Consells
- No definir clarament el context: Assegura't que el Given estableixi clarament l'estat inicial.
 - Accions múltiples en un sol When: Mantingues cada When per a una sola acció per claredat.
 - Resultats no verificables: Els Then han de ser mesurables i verificables.
 
Conclusió
L'ús de Given, When, i Then és fonamental per escriure escenaris de BDD clars i efectius. Aquesta estructura ajuda a comunicar les expectatives de comportament de manera que tothom en l'equip pugui entendre-les i contribuir-hi. En el següent mòdul, explorarem com crear definicions de passos per implementar aquests escenaris en Cucumber.
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
 
