En esta sección, aprenderás a crear tu primer proyecto Cucumber desde cero. Este proceso te ayudará a familiarizarte con la estructura básica de un proyecto Cucumber y a configurar el entorno necesario para comenzar a escribir pruebas BDD.
Paso 1: Configuración del Entorno
Antes de comenzar, asegúrate de tener instalado lo siguiente:
- Java Development Kit (JDK): Cucumber requiere Java para ejecutarse. Puedes descargarlo desde Oracle o usar una distribución de código abierto como OpenJDK.
- Maven: Es una herramienta de gestión de proyectos que simplifica la compilación y gestión de dependencias. Descárgalo desde Apache Maven.
- IDE (Entorno de Desarrollo Integrado): Recomendamos usar IntelliJ IDEA o Eclipse, que ofrecen soporte para Cucumber.
Paso 2: Crear un Proyecto Maven
- Inicia tu IDE y selecciona la opción para crear un nuevo proyecto Maven.
- Configura el proyecto:
- Group ID: com.ejemplo
- Artifact ID: proyecto-cucumber
- Version: 1.0-SNAPSHOT
- Selecciona un arquetipo: Puedes usar el arquetipo
maven-archetype-quickstart
para un proyecto básico.
Paso 3: Configurar el Archivo pom.xml
El archivo pom.xml
es crucial para gestionar las dependencias de tu proyecto. Asegúrate de incluir las siguientes dependencias para Cucumber:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.ejemplo</groupId> <artifactId>proyecto-cucumber</artifactId> <version>1.0-SNAPSHOT</version> <dependencies> <!-- Cucumber Java --> <dependency> <groupId>io.cucumber</groupId> <artifactId>cucumber-java</artifactId> <version>7.0.0</version> <scope>test</scope> </dependency> <!-- Cucumber JUnit --> <dependency> <groupId>io.cucumber</groupId> <artifactId>cucumber-junit</artifactId> <version>7.0.0</version> <scope>test</scope> </dependency> <!-- JUnit --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.13.2</version> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.22.2</version> </plugin> </plugins> </build> </project>
Paso 4: Estructura del Proyecto
Organiza tu proyecto con la siguiente estructura de directorios:
proyecto-cucumber │ ├── src │ ├── main │ │ └── java │ └── test │ ├── java │ │ └── com │ │ └── ejemplo │ │ └── stepdefinitions │ └── resources │ └── features
src/test/java/com/ejemplo/stepdefinitions
: Aquí es donde escribirás las definiciones de pasos.src/test/resources/features
: Aquí es donde almacenarás tus archivos de características Gherkin.
Paso 5: Crear un Archivo de Características
Crea un archivo llamado primer_escenario.feature
en el directorio src/test/resources/features
con el siguiente contenido:
Feature: Calculadora Scenario: Sumar dos números Given que tengo una calculadora When sumo 2 y 3 Then el resultado debe ser 5
Paso 6: Crear Definiciones de Pasos
Crea una clase Java en src/test/java/com/ejemplo/stepdefinitions
llamada CalculadoraSteps.java
:
package com.ejemplo.stepdefinitions; import io.cucumber.java.en.Given; import io.cucumber.java.en.When; import io.cucumber.java.en.Then; import static org.junit.Assert.*; public class CalculadoraSteps { private int resultado; private Calculadora calculadora; @Given("que tengo una calculadora") public void que_tengo_una_calculadora() { calculadora = new Calculadora(); } @When("sumo {int} y {int}") public void sumo_y(int num1, int num2) { resultado = calculadora.sumar(num1, num2); } @Then("el resultado debe ser {int}") public void el_resultado_debe_ser(int esperado) { assertEquals(esperado, resultado); } }
Paso 7: Implementar la Lógica de la Calculadora
Crea una clase Calculadora
en src/main/java
:
Paso 8: Ejecutar el Proyecto
Usa Maven para ejecutar las pruebas:
Conclusión
Has creado con éxito tu primer proyecto Cucumber. Ahora entiendes cómo configurar un proyecto básico, escribir un archivo de características y definir pasos en Java. En el siguiente módulo, profundizaremos en la sintaxis de Gherkin y cómo escribir escenarios más complejos.
BDD con Cucumber y Gherkin
Módulo 1: Introducción a BDD
Módulo 2: Comenzando con Cucumber
- Configuración del Entorno
- Creando Tu Primer Proyecto Cucumber
- Entendiendo los Archivos de Características
Módulo 3: Escribiendo Escenarios Gherkin
Módulo 4: Definiciones de Pasos
Módulo 5: Técnicas Avanzadas de Gherkin
Módulo 6: Integrando Cucumber con el Desarrollo
- Integración con Integración Continua
- Usando Cucumber con Diferentes Lenguajes
- Mejores Prácticas para BDD en Equipos
Módulo 7: Características Avanzadas de Cucumber
Módulo 8: Aplicaciones de BDD en el Mundo Real
- Estudio de Caso: BDD en una Aplicación Web
- Estudio de Caso: BDD en una Arquitectura de Microservicios
- Desafíos y Soluciones en BDD