Download BDD con Cucumber
Document related concepts
no text concepts found
Transcript
TDD desde Cero Cucumber para BDD con Java www.iwt2.org [email protected] Objetivos • Mostrar los conceptos fundamentales de Cucumber. • Diseccionar y entender un ejemplo de BDD con Cucumber. Objetivos 2 Índice 1. Empezando con Cucumber 2. Conceptos básicos 3. Un ejemplo paso a paso. 4. Para terminar Índice 3 Empezando con Cucumber 4 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 cucumberjunit 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/c ucumber-jvm • Para comprobar que tenemos Cucumber bien instalado vamos a probar el ejemplo helloworld. Empezando con Cucumber Hello World • creamos un proyecto, descargar y añadir al classpath los jar anteriores 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) 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. Conceptos básicos 10 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. Un ejemplo paso a paso 13 Ejemplo paso a paso • Veamos otro ejemplo de: https://github.com/cuc umber/cucumber-jvm • El ejemplo JavaCalcularor. • En este caso reharemos el ejemplo desde cero. 14 Ejemplo paso a paso Escenarios con ejemplos de uso Comenzamos implementando los primeros pasos 15 Ejemplo paso a paso Empezamos a implementar los pasos y comprobamos que la prueba falla. Pasos. Código. Fallo. 16 Ejemplo paso a paso Completamos la prueba de implementamos el código para que funcione. Código. 17 Ejemplo paso a paso Vamos a añadir la resta. Comprobamos que la prueba falla 18 Ejemplo paso a paso Completamos la prueba de implementamos el código para que funcione. 19 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 Para terminar 21 Enlaces y referencias • The Secret Ninja Cucumber Scrolls (libro gratuito) • http://cuke4ninja.com/ • Cucumber y C++ • http://ociotec.com/bdd -c-en-windows-conboost-y-cucumber-cpp/ • Página oficial: http://cukes.info/ Para saber más 22 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. Actividades 23