tdd desde cero - iwt2

Post on 31-Jul-2022

2 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

TDD desde Cero

Cucumber para BDD con Java

www.iwt2.orgformacion@iwt2.org

2

• Mostrar los conceptos fundamentales de Cucumber.

• Diseccionar y entender un ejemplo de BDD con Cucumber.

Objetivos

Objetivos

3

1. Empezando con Cucumber

2. Conceptos básicos3. Un ejemplo paso a

paso.4. Para terminar

Índice

Índice

4

Empezando con Cucumber

Empezando con Cucumber

• Cucumber es una herramienta escriba en Ruby.

• Sin embargo en este módulo veremos la adaptación hecha para lenguaje Java.

• Para instalarlo es necesario descargar varios ficheros de esta URL: http://repo1.maven.org/maven2/info/cukes/

Empezando con Cucumber

• Los ficheros básicos necesarios son cucumber-core.jar y cucumber-java.jar

• También descargaremos el módulo cucumber-junit para conectar Cucumber con JUnit.

• También es necesario descargar Gherkin para procesar el lenguaje de los escenarios

Empezando con Cucumber

• Podemos encontrar varios ejemplos en el repositorio de github aquí: https://github.com/cucumber/cucumber-jvm

• Para comprobar que tenemos Cucumber bien instalado vamos a probar el ejemplo helloworld.

Empezando con Cucumber

• creamos un proyecto, descargar y añadir al classpath los jaranteriores y añadir el paquete de código que contiene los ficheros.

• Necesitaremos 4archivos: Hello.java (con el código a probar), HelloStepdefs.java (con el código de los pasos del escenario), RunCukesTest.java (lanzador de la prueba) y helloworld.feature (con los escenarios a probar)

Hello World

Empezando con Cucumber

• Para ejecutar las pruebas con Junit modificaremos las opciones para que los use de output.

• Si todo ha ido bien no tendremos ningún error en los ficheros Java al importar el código.

• Al ejecutar como una prueba Junit el archivo RunCukes, veremos que las pruebas pasan con éxito.

10

Conceptos básicos

Conceptos básicos

• Cucumber utiliza la sintaxis Gherkin para definir los escenarios.

• Esta sintaxis es muy similar a la sintaxis de otra herramientas como Jbehave o Behave.

• En Cucumber es posible escribir los escenarios en distintos idiomas.

• Cucumber trae las etiquetas necesarias para relacionar los pasos con el código en muchos idiomas.

• Por compatibilidad con otras herramientas todos los ejemplos y ejercicios los haremos en inglés

Conceptos básicos

Escenario con un ejemplo concreto de uso.

Conjunto de valores. El escenarios e ejecutará una vez por cada fila de valores.

}

}

13

Un ejemplo paso a paso

14

• Veamos otro ejemplo de: https://github.com/cucumber/cucumber-jvm

• El ejemplo Java-Calcularor.

• En este caso reharemos el ejemplo desde cero.

Ejemplo paso a paso

15

Ejemplo paso a paso

Comenzamos implementando los primeros pasos

Escenarios con ejemplos de uso

16

Ejemplo paso a paso

Empezamos a implementar los pasos y comprobamos que la prueba falla.

Pasos. Código.

Fallo.

17

Ejemplo paso a paso

Completamos la prueba de implementamos el código para que funcione.

Código.

18

Ejemplo paso a paso

Vamos a añadir la resta.Comprobamos que la prueba

falla

19

Ejemplo paso a paso

Completamos la prueba de implementamos el código para que funcione.

Ejemplo paso a paso

• Hay más pruebas que desarrollar para mejorar el código.– Más de dos valores– Secuencias de varios operandos– Operador sin operandos– Etc.

• También empiezan a aparecer posibles refactorizaciones.– Aplicar el patrón Strategy para los operadores

21

Para terminar

22

• The Secret Ninja Cucumber Scrolls (librogratuito)

• http://cuke4ninja.com/• Cucumber y C++• http://ociotec.com/bdd

-c-en-windows-con-boost-y-cucumber-cpp/

• Página oficial: http://cukes.info/

Enlaces y referencias

Para saber más

23

Actividades

Actividades

• Prueba a implementar alguno de los ejemplos de Cucumber en otra de las herramientas de ATDD / BDD que hemos visto.

• También puedes probar a desarrollar alguno de los ejemplos de otras herramientas en Cucumber.

top related