Usare easyb con Maven

Easyb è un modo molto interessante per testare la tua applicazione Java in stile BDD con Java. Ma non sarebbe bello poter integrare le tue storie BDD nel tuo processo di creazione di Maven? La buona notizia è che puoi!

Scrivere una storia di prova in stile BDD con easyb è, beh, facile. Groovy è un ottimo modo per gli sviluppatori Java di scrivere test in modo rapido ed efficiente, anche se non conoscono i punti più fini del linguaggio di scripting Groovy. Ad esempio, la seguente storia di prova (in un file chiamato "AccountDepositsStory.groovy") esplora cosa dovrebbe accadere quando apri un nuovo conto bancario:

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

Questo è abbastanza facile e ci sono molti modi per eseguirlo. È possibile eseguire lo script dalla riga di comando o utilizzando l'attività Ant. Una delle mie tecniche preferite è usare il plugin IntelliJ, che è davvero molto interessante. Tuttavia, come utente Maven per scelta, quello che voglio veramente fare è integrare gli script EasyB nel processo di compilazione di Maven.

A quanto pare, anche questo è abbastanza facile, grazie a

Plugin Maven Easyb

. Metti tutti i tuoi script della storia EasyB sotto il file

src/test/easyb

directory e aggiungi un riferimento al plug-in EasyB Maven nei plug-in di build, come mostrato qui:

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

In questo esempio, abbiamo impostato Easyb per l'esecuzione durante il

test

fase del ciclo di vita (in altre parole, quando si esegue "mvn test"). Quando esegui i tuoi test in Maven, EasyB si avvia ed esegue tutte le storie che riesce a trovare nel file

src/test/easyb

directory. Per convenzione, considera qualsiasi file che termina con "* Story.groovy", "* .story", "* Specification.groovy" o "* .specification" come una storia easyb. Un esempio del plugin easyb in azione è mostrato qui:

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

Al rovescio della medaglia, il plug-in è ancora un po 'verde: non si integra ancora con la generazione del sito Maven, ad esempio, i rapporti sono piuttosto semplici e devi associare il plug-in alla fase del ciclo di vita di "test". Tuttavia, il progetto è molto dinamico e questi dettagli dovrebbero essere risolti in pochissimo tempo, quindi rimanete sintonizzati per gli ultimi sviluppi BDD!

Se vuoi saperne di più su EasyB, terrò un discorso sull'argomento alla Java Emerging Technologies Conference 2008 (JET 2008) ad Auckland il 17 settembre, così come i colloqui per i gruppi di utenti Java di Melbourne e Sydney mentre io Sono finita così per i bootcamp di Melbourne e Sydney Java Power Tool. Quindi, se sei interessato, e in zona, vieni!

Questa storia, "Usare easyb con Maven" è stata originariamente pubblicata da JavaWorld.