La parametrització de passos és una tècnica essencial en el desenvolupament de proves amb Cucumber, ja que permet reutilitzar definicions de passos per a múltiples escenaris amb diferents dades d'entrada. Això no només redueix la duplicació de codi, sinó que també fa que les proves siguin més fàcils de mantenir i llegir.

Conceptes clau

  • Parametrització: Consisteix a utilitzar variables dins dels passos per substituir valors literals, permetent que un sol pas pugui ser utilitzat amb diferents dades.
  • Expressions regulars: S'utilitzen per identificar i extreure els valors de les variables dels passos escrits en Gherkin.
  • Pas reutilitzable: Un pas que pot ser utilitzat en diversos escenaris gràcies a la parametrització.

Exemple pràctic

Escenari Gherkin

Imagina que estem provant una aplicació bancària i volem verificar el saldo d'un compte després d'un dipòsit. Podem escriure un escenari Gherkin com aquest:

Escenari: Dipositar diners en un compte
  Donat que el saldo inicial del compte és de 100 euros
  Quan diposito 50 euros al compte
  Aleshores el saldo final del compte hauria de ser de 150 euros

Parametrització del pas

En lloc de crear una definició de pas específica per a cada valor de saldo, podem parametritzar els passos:

Escenari: Dipositar diners en un compte
  Donat que el saldo inicial del compte és de <saldo_inicial> euros
  Quan diposito <diposit> euros al compte
  Aleshores el saldo final del compte hauria de ser de <saldo_final> euros

Exemples:
  | saldo_inicial | diposit | saldo_final |
  | 100           | 50      | 150         |
  | 200           | 100     | 300         |

Definició de pas en Java

A continuació, es mostra com podríem implementar la definició de pas en Java utilitzant expressions regulars per capturar els valors parametritzats:

import io.cucumber.java.en.Given;
import io.cucumber.java.en.When;
import io.cucumber.java.en.Then;
import static org.junit.Assert.assertEquals;

public class BankAccountSteps {
    private int saldo;

    @Given("^el saldo inicial del compte és de (\\d+) euros$")
    public void el_saldo_inicial_del_compte_es_de(int saldoInicial) {
        saldo = saldoInicial;
    }

    @When("^diposito (\\d+) euros al compte$")
    public void diposito_euros_al_compte(int diposit) {
        saldo += diposit;
    }

    @Then("^el saldo final del compte hauria de ser de (\\d+) euros$")
    public void el_saldo_final_del_compte_hauria_de_ser_de(int saldoFinalEsperat) {
        assertEquals(saldoFinalEsperat, saldo);
    }
}

Exercici pràctic

Exercici

Crea un escenari Gherkin per a una funcionalitat de retirada de diners d'un compte bancari. Parametritza els passos per permetre diferents valors de saldo inicial, retirada i saldo final esperat.

Solució

Escenari: Retirar diners d'un compte
  Donat que el saldo inicial del compte és de <saldo_inicial> euros
  Quan retiro <retirada> euros del compte
  Aleshores el saldo final del compte hauria de ser de <saldo_final> euros

Exemples:
  | saldo_inicial | retirada | saldo_final |
  | 150           | 50       | 100         |
  | 300           | 100      | 200         |

Definició de pas en Java

@When("^retiro (\\d+) euros del compte$")
public void retiro_euros_del_compte(int retirada) {
    saldo -= retirada;
}

Conclusió

La parametrització de passos és una tècnica poderosa que permet escriure proves més flexibles i mantenibles. Mitjançant l'ús d'expressions regulars, podem capturar i utilitzar valors variables dins dels nostres passos, facilitant la reutilització i la claredat dels escenaris de prova. Practicar aquesta tècnica ajudarà a millorar l'eficiència i l'eficàcia de les proves BDD.

© Copyright 2024. Tots els drets reservats