Els fitxers de característiques són una part fonamental del desenvolupament guiat per comportament (BDD) amb Cucumber. Aquests fitxers serveixen com a documentació viva del sistema, descrivint el comportament esperat de l'aplicació en un llenguatge que tant els desenvolupadors com els no tècnics poden entendre.
Què és un fitxer de característiques?
Un fitxer de característiques és un document escrit en llenguatge Gherkin que descriu un conjunt d'escenaris per a una funcionalitat específica del sistema. Cada fitxer de característiques pot contenir múltiples escenaris que cobreixen diferents aspectes del comportament de la funcionalitat.
Estructura d'un fitxer de característiques
-
Paraula clau
Feature
:- Defineix la funcionalitat que s'està descrivint.
- Proporciona un resum breu de la funcionalitat.
-
Descripció (opcional):
- Ofereix més detalls sobre la funcionalitat.
- Pot incloure el context o l'objectiu de la funcionalitat.
-
Escenaris:
- Cada escenari descriu un cas d'ús específic.
- Utilitza les paraules clau
Given
,When
,Then
,And
,But
per definir els passos.
Exemple d'un fitxer de característiques
Feature: Login functionality In order to access my account As a registered user I want to be able to log in to the application Scenario: Successful login with valid credentials Given the user is on the login page When the user enters valid credentials And clicks the login button Then the user should be redirected to the dashboard Scenario: Unsuccessful login with invalid credentials Given the user is on the login page When the user enters invalid credentials And clicks the login button Then an error message should be displayed
Explicació de l'exemple
- Feature: Descriu la funcionalitat de "Login functionality".
- Descripció: Explica el propòsit de la funcionalitat des de la perspectiva de l'usuari.
- Escenari 1: Descriu un cas d'ús on l'usuari inicia sessió amb èxit.
- Escenari 2: Descriu un cas d'ús on l'usuari no pot iniciar sessió a causa de credencials incorrectes.
Bones pràctiques per escriure fitxers de característiques
- Claredat i concisió: Els escenaris han de ser fàcils de llegir i entendre.
- Un escenari per cas d'ús: Cada escenari ha de cobrir un cas d'ús específic.
- Evitar la implementació tècnica: Els fitxers de característiques han de centrar-se en el comportament, no en els detalls tècnics.
- Reutilització de passos: Utilitza passos comuns entre escenaris per evitar la duplicació.
Exercici pràctic
Exercici: Escriu un fitxer de característiques per a la funcionalitat de "Restablir contrasenya" que inclogui els següents escenaris:
- Restabliment de contrasenya amb un correu electrònic vàlid.
- Error en el restabliment de contrasenya amb un correu electrònic no registrat.
Solució:
Feature: Password reset functionality In order to regain access to my account As a user who has forgotten their password I want to be able to reset my password Scenario: Successful password reset with a valid email Given the user is on the password reset page When the user enters a registered email And clicks the reset password button Then a password reset link should be sent to the email Scenario: Unsuccessful password reset with an unregistered email Given the user is on the password reset page When the user enters an unregistered email And clicks the reset password button Then an error message should be displayed
Conclusió
Els fitxers de característiques són essencials per documentar i provar el comportament esperat de les funcionalitats del sistema. Escriure fitxers de característiques clars i ben estructurats ajuda a garantir que tots els membres de l'equip, tècnics i no tècnics, tinguin una comprensió comuna del que s'està desenvolupant. En el següent mòdul, explorarem com escriure escenaris Gherkin amb més detall.
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