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-quickstartpara 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 5Paso 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
