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