En aquest tema, explorarem com utilitzar els esquemes d'escenari i els exemples en Gherkin per escriure escenaris més eficients i reutilitzables. Aquesta tècnica és especialment útil quan necessitem provar múltiples conjunts de dades amb la mateixa lògica.
Què són els esquemes d'escenari?
Els esquemes d'escenari són una manera de definir un escenari que es pot executar diverses vegades amb diferents conjunts de dades. Això es fa utilitzant una taula d'exemples que proporciona els valors per a cada execució.
Beneficis dels esquemes d'escenari:
- Reutilització del codi: Permet escriure un sol escenari que es pot executar amb diferents dades.
- Mantenibilitat: Facilita l'actualització dels escenaris, ja que només cal modificar la taula d'exemples.
- Claredat: Millora la llegibilitat dels escenaris, ja que separa la lògica de prova de les dades.
Sintaxi dels esquemes d'escenari
Un esquema d'escenari es defineix amb la paraula clau Scenario Outline
, seguida d'una taula d'Examples
que conté els diferents conjunts de dades.
Estructura bàsica:
Scenario Outline: [Nom de l'esquema] Given [condició inicial] <paràmetre> When [acció] <paràmetre> Then [resultat esperat] <paràmetre> Examples: | paràmetre1 | paràmetre2 | paràmetre3 | | valor1 | valor2 | valor3 | | valor4 | valor5 | valor6 |
Exemple pràctic
Suposem que estem provant una funcionalitat de login en una aplicació web. Volem verificar que diferents combinacions d'usuari i contrasenya produeixin els resultats esperats.
Escenari sense esquema:
Scenario: Login amb credencials vàlides Given l'usuari "usuari1" amb contrasenya "contrasenya1" When intenta iniciar sessió Then l'inici de sessió hauria de ser exitós Scenario: Login amb credencials invàlides Given l'usuari "usuari2" amb contrasenya "contrasenya2" When intenta iniciar sessió Then l'inici de sessió hauria de fallar
Escenari amb esquema:
Scenario Outline: Provar el login amb diferents credencials Given l'usuari "<usuari>" amb contrasenya "<contrasenya>" When intenta iniciar sessió Then l'inici de sessió hauria de ser "<resultat>" Examples: | usuari | contrasenya | resultat | | usuari1 | contrasenya1 | exitós | | usuari2 | contrasenya2 | fallar |
Exercici pràctic
Exercici: Escriu un esquema d'escenari per provar una calculadora que suma dos números. Proporciona almenys tres conjunts de dades diferents.
Solució:
Scenario Outline: Sumar dos números Given que la calculadora està encesa When sumo <nombre1> i <nombre2> Then el resultat hauria de ser <resultat> Examples: | nombre1 | nombre2 | resultat | | 2 | 3 | 5 | | 10 | 5 | 15 | | 7 | 8 | 15 |
Conclusió
Els esquemes d'escenari i els exemples són eines poderoses en Gherkin que permeten escriure escenaris més eficients i fàcils de mantenir. Utilitzant aquestes tècniques, podem provar múltiples conjunts de dades amb la mateixa lògica, millorant la cobertura de proves i la qualitat del nostre codi. En el següent tema, explorarem com utilitzar etiquetes i filtratge d'escenaris per gestionar millor les nostres proves.
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