Utiliser easyb avec Maven

Easyb est un moyen très cool de tester votre application Java dans le style BDD avec Java. Mais ne serait-il pas agréable de pouvoir intégrer vos histoires BDD dans votre processus de construction Maven? La bonne nouvelle est que vous pouvez!

Écrire une histoire de test de style BDD avec easyb est, eh bien, facile. Groovy est un excellent moyen pour les développeurs Java d'écrire des tests rapidement et efficacement, même s'ils ne connaissent pas les subtilités du langage de script Groovy. Par exemple, l'histoire de test suivante (dans un fichier appelé "AccountDepositsStory.groovy") explore ce qui doit se passer lorsque vous ouvrez un nouveau compte bancaire:

 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 } } 

C'est assez simple et il existe de nombreuses façons de l'exécuter. Vous pouvez exécuter le script à partir de la ligne de commande ou à l'aide de la tâche Ant. Une de mes techniques préférées est d'utiliser le plugin IntelliJ, qui est en effet très cool. Cependant, en tant qu'utilisateur Maven par choix, ce que je veux vraiment faire est d'intégrer des scripts EasyB dans le processus de construction de Maven.

En fait, c'est aussi assez facile, grâce au

Plugin Maven Easyb

. Placez simplement tous vos scripts d'histoire EasyB sous le

src/test/easyb

et ajoutez une référence au plugin EasyB Maven dans vos plugins de construction, comme indiqué ici:

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

Dans cet exemple, nous avons configuré Easyb pour qu'il s'exécute pendant la

tester

phase du cycle de vie (en d'autres termes, lorsque vous exécutez "mvn test"). Lorsque vous exécutez vos tests dans Maven, EasyB démarre et exécute toutes les histoires qu'il peut trouver dans le

src/test/easyb

annuaire. Par convention, il considère tout fichier se terminant par "* Story.groovy", "* .story", "* Specification.groovy" ou "* .specification" comme une histoire facile. Un exemple du plugin easyb en action est montré ici:

 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 revanche, le plugin est encore un peu vert - il ne s'intègre pas encore à la génération du site Maven, par exemple, le reporting est assez basique et vous devez lier le plugin à la phase du cycle de vie `` test '' vous-même. Cependant, le projet est très dynamique et ces détails devraient être corrigés en un rien de temps - alors restez à l'écoute pour les derniers développements BDD!

Si vous voulez en savoir plus sur EasyB, je donnerai une conférence sur le sujet à la Java Emerging Technologies Conference 2008 (JET 2008) à Auckland le 17 septembre, ainsi que des conférences pour les groupes d'utilisateurs Java de Melbourne et Sydney pendant que je J'en ai fini avec les bootcamps de Melbourne et Sydney Java Power Tool. Alors, si vous êtes intéressé, et dans la région, venez!

Cette histoire, "Utilisation d'easyb avec Maven" a été publiée à l'origine par JavaWorld.