tdd desde cero - iwt2
TRANSCRIPT
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.