Usando easyb con Maven

Easyb es una forma genial de probar su aplicación Java en estilo BDD con Java. ¿Pero no sería bueno poder integrar sus historias de BDD en su proceso de compilación de Maven? ¡La buena noticia es que puedes!

Escribir una historia de prueba al estilo BDD con easyb es, bueno, fácil. Groovy es una excelente manera para que los desarrolladores de Java escriban pruebas de manera rápida y eficiente, incluso si no conocen los puntos más finos del lenguaje de programación Groovy. Por ejemplo, la siguiente historia de prueba (en un archivo llamado "AccountDepositsStory.groovy") explora lo que debería suceder cuando abre una nueva cuenta bancaria:

 import com.wakaleo.onlinebank.domain.Account /** * A simple scenario */ scenario "depositing money onto a new account", { given "a new account",{ account = new Account() } when "an initial deposit is made", { amount = 100 account.makeDeposit(amount) } then "the balance should be equal to the amount deposited", { account.balance.shouldBe amount } } 

Esto es bastante fácil y hay muchas formas de ejecutarlo. Puede ejecutar el script desde la línea de comandos o usando la tarea Ant. Una de mis técnicas favoritas es usar el complemento IntelliJ, que es, de hecho, genial. Sin embargo, como usuario de Maven por elección, lo que realmente quiero hacer es integrar los scripts de EasyB en el proceso de compilación de Maven.

Resulta que esto también es bastante fácil, gracias a la

Complemento Maven Easyb

. Simplemente coloque todos los guiones de la historia de EasyB bajo el

src/test/easyb

directorio y agregue una referencia al complemento EasyB Maven en sus complementos de compilación, como se muestra aquí:

  ...   ...  org.easyb maven-easyb-plugin 0.9    test        

En este ejemplo, configuramos Easyb para que se ejecute durante el

prueba

fase del ciclo de vida (en otras palabras, cuando ejecuta "mvn test"). Cuando ejecute sus pruebas en Maven, EasyB se activará y ejecutará todas las historias que pueda encontrar en el

src/test/easyb

directorio. Por convención, considera que cualquier archivo que termine en "* Story.groovy", "* .story", "* Specification.groovy" o "* .specification" es una historia easyb. Aquí se muestra un ejemplo del complemento easyb en acción:

 C:\Users\john\projects\onlinebank\onlinebank-core>mvn test [INFO] Scanning for projects... [INFO] ------------------------------------------------------------------------ [INFO] Building onlinebank-core [INFO] task-segment: [test] [INFO] ------------------------------------------------------------------------ ... [INFO] [easyb:test {execution: default}] [INFO] Using easyb dependency org.easyb:easyb:jar:0.9:compile [INFO] Using easyb dependency commons-cli:commons-cli:jar:1.1:compile [INFO] Using easyb dependency org.codehaus.groovy:groovy-all-minimal:jar:1.5.0:compile [java] Running account deposits story (AccountDepositsStory.groovy) [java] Scenarios run: 2, Failures: 0, Pending: 0, Time Elapsed: 0.368 sec [java] Running account withdrawls story (AccountWithdrawlsStory.groovy) [java] Scenarios run: 2, Failures: 0, Pending: 0, Time Elapsed: 0.123 sec [java] Running open account specification (openAccount.specification) [java] Specifications run: 2, Failures: 0, Pending: 0, Time Elapsed: 0.038 sec [java] 6 total behaviors run with no failures [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESSFUL [INFO] ------------------------------------------------------------------------ [INFO] Total time: 3 seconds [INFO] Finished at: Mon Aug 11 10:09:24 NZST 2008 [INFO] Final Memory: 8M/14M [INFO] ------------------------------------------------------------------------ 

En el lado negativo, el complemento todavía es un poco verde: aún no se integra con la generación del sitio Maven, por ejemplo, los informes son bastante básicos y debe vincular el complemento a la fase del ciclo de vida de 'prueba' usted mismo. Sin embargo, el proyecto es muy dinámico, y estos detalles deben resolverse en poco tiempo, ¡así que estad atentos a los últimos desarrollos de BDD!

Si desea obtener más información sobre EasyB, daré una charla sobre el tema en la Conferencia de Tecnologías Emergentes de Java 2008 (JET 2008) en Auckland el 17 de septiembre, así como charlas para los Grupos de Usuarios de Java de Melbourne y Sydney mientras Estoy en ese camino para los bootcamps de Java Power Tool de Melbourne y Sydney. Entonces, si estás interesado y en la zona, ¡ven!

Esta historia, "Uso de easyb con Maven", fue publicada originalmente por JavaWorld.