En aquest tema, aprendrem com crear definicions de passos per als nostres escenaris escrits en Gherkin. Les definicions de passos són essencials per connectar els escenaris de Gherkin amb el codi que executa les accions descrites. Aquest procés és fonamental per implementar el BDD amb Cucumber.
Què són les definicions de passos?
Les definicions de passos són fragments de codi que defineixen com s'han d'executar els passos dels escenaris escrits en Gherkin. Cada pas en un escenari Gherkin es correspon amb una definició de pas que conté el codi necessari per realitzar l'acció descrita.
Conceptes clau:
- Pas Gherkin: Una línia en un escenari que descriu una acció o una condició.
- Definició de pas: El codi que implementa l'acció o la condició descrita en un pas Gherkin.
- Associació: La connexió entre un pas Gherkin i la seva definició de pas es fa mitjançant expressions regulars.
Com crear definicions de passos
- Estructura bàsica d'una definició de pas
Una definició de pas es crea en un fitxer de codi, normalment en el mateix llenguatge de programació que el projecte. A continuació, es mostra un exemple bàsic en Java:
import io.cucumber.java.en.Given; public class StepDefinitions { @Given("l'usuari es troba a la pàgina d'inici") public void l_usuari_es_troba_a_la_pagina_d_inici() { // Codi per navegar a la pàgina d'inici System.out.println("Navegant a la pàgina d'inici"); } }
- Anotacions de Cucumber
- @Given, @When, @Then: Aquestes anotacions s'utilitzen per indicar el tipus de pas que s'està definint. Cada anotació es correspon amb una paraula clau de Gherkin.
- Utilització d'expressions regulars
Les expressions regulars s'utilitzen per associar un pas Gherkin amb la seva definició de pas. Això permet que una definició de pas pugui coincidir amb múltiples variacions d'un pas.
@When("l'usuari introdueix el nom d'usuari {string}") public void l_usuari_introdueix_el_nom_d_usuari(String username) { // Codi per introduir el nom d'usuari System.out.println("Introduint el nom d'usuari: " + username); }
Exercici pràctic
Objectiu
Crea una definició de pas per a l'escenari següent:
Escenari: L'usuari inicia sessió correctament
Given l'usuari es troba 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 veure el missatge "Benvingut, johndoe!"
Solució
import io.cucumber.java.en.Given; import io.cucumber.java.en.When; import io.cucumber.java.en.Then; public class LoginStepDefinitions { @Given("l'usuari es troba a la pàgina d'inici de sessió") public void l_usuari_es_troba_a_la_pagina_d_inici_de_sessio() { // Codi per navegar a la pàgina d'inici de sessió System.out.println("Navegant a la pàgina d'inici de sessió"); } @When("l'usuari introdueix el nom d'usuari {string} i la contrasenya {string}") public void l_usuari_introdueix_el_nom_d_usuari_i_la_contrasenya(String username, String password) { // Codi per introduir el nom d'usuari i la contrasenya System.out.println("Introduint el nom d'usuari: " + username); System.out.println("Introduint la contrasenya: " + password); } @Then("l'usuari hauria de veure el missatge {string}") public void l_usuari_hauria_de_veure_el_missatge(String message) { // Codi per verificar el missatge de benvinguda System.out.println("Verificant el missatge: " + message); } }
Errors comuns i consells
- Error: Pas no definit: Assegura't que l'expressió regular de la definició de pas coincideixi exactament amb el pas Gherkin.
- Consell: Utilitza paràmetres en les expressions regulars per fer les definicions de passos més reutilitzables.
Conclusió
Les definicions de passos són una part fonamental del BDD amb Cucumber, ja que connecten els escenaris de Gherkin amb el codi executable. Amb la pràctica, podràs crear definicions de passos eficients i reutilitzables que facilitaran la implementació de proves BDD en els teus projectes. En el següent tema, explorarem com parametritzar els passos per fer-los encara més flexibles.
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