Programmering

Bruke easyb med Maven

Easyb er en veldig kul måte å teste Java-applikasjonen din i BDD-stil med Java. Men ville det ikke vært fint å kunne integrere BDD-historiene dine i din Maven-byggeprosess? Den gode nyheten er at du kan!

Å skrive en testhistorie i BDD-stil med easyb er, vel, enkelt. Groovy er en flott måte for Java-utviklere å skrive tester raskt og effektivt, selv om de ikke kjenner de finere punktene i Groovy-skriptspråket. For eksempel, følgende testhistorie (i en fil kalt "AccountDepositsStory.groovy") utforsker hva som skal skje når du åpner en ny bankkonto:

 importer com.wakaleo.onlinebank.domain.Account / ** * Et enkelt scenario * / scenario "deponere penger på en ny konto", {gitt "en ny konto", {account = new Account ()} når "et første innskudd er laget ", {amount = 100 account.makeDeposit (beløp)} så" skal saldoen være lik innskuddsbeløpet ", {account.balance.shouldBe amount}} 

Dette er enkelt nok, og det er mange måter å utføre det på. Du kan kjøre skriptet fra kommandolinjen eller bruke Ant-oppgaven. En av favorittteknikkene mine er å bruke IntelliJ-pluginet, som faktisk er veldig kult. Imidlertid, som en Maven-bruker etter eget valg, er det jeg virkelig ønsker å integrere EasyB-skript i Maven-byggeprosessen.

Som det viser seg, er dette også ganske enkelt, takket være

Maven Easyb-plugin

. Bare legg alle EasyB-historikkskriptene dine under

src / test / easyb

katalog og legg til en referanse til EasyB Maven-plugin i build-plugins, som vist her:

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

I dette eksemplet setter vi opp Easyb til å kjøre i løpet av

test

livssyklusfase (med andre ord når du kjører "mvn test"). Når du kjører testene dine i Maven, vil EasyB sparke inn og kjøre alle historiene den kan finne i

src / test / easyb

katalog. Etter konvensjon anser den alle filer som slutter på "* Story.groovy", "* .story", "* Specification.groovy" eller "* .specification" som en lett historie. Et eksempel på easyb plugin i aksjon vises her:

 C: \ Users \ john \ projects \ onlinebank \ onlinebank-core>mvn test [INFO] Skanner etter prosjekter ... [INFO] -------------------------------------- ---------------------------------- [INFO] Bygging av nettbank-kjerne [INFO] oppgavesegment: [test ] [INFO] ---------------------------------------------- -------------------------- ... [INFO] [easyb: test {kjøring: standard}] [INFO] Bruker easyb avhengighetsorganisasjon. easyb: easyb: jar: 0.9: kompilere [INFO] Bruke easyb avhengighet commons-cli: commons-cli: jar: 1.1: kompilere [INFO] Bruke easyb avhengighet org.codehaus.groovy: groovy-all-minimal: jar: 1.5. 0: kompilere [java] Løpende kontoinnskuddshistorie (AccountDepositsStory.groovy) [java] Scenarier kjøres: 2, Feil: 0, Venter: 0, Forløpt tid: 0,368 sek [java] Løpende konto trekker tilbake historie (AccountWithdrawlsStory.groovy) [java ] Scenarier kjøres: 2, Feil: 0, Venter: 0, Forløpt tid: 0,123 sek [java] Kjører åpen kontospesifikasjon (openAccount.specification) [java] Spesifikasjonskjøring: 2, Feil: 0, Venter: 0, Tid gått: 0,038 sek [java] 6 totale atferd kjører uten feil [ INFO] -------------------------------------------------------- ------------------------ [INFO] BYGG SUCCESFULL [INFO] ------------------ -------------------------------------------------- ---- [INFO] Total tid: 3 sekunder [INFO] Avsluttet kl: Man 11. aug 10:09:24 NZST 2008 [INFO] Endelig minne: 8M / 14M [INFO] ---------- -------------------------------------------------- ------------ 

På baksiden er pluginet fortsatt litt grønt - det integreres ikke med Maven-nettstedsgenerasjonen ennå, for eksempel er rapporteringen ganske grunnleggende, og du må binde plugin til "test" livssyklusfasen selv. Prosjektet er imidlertid veldig dynamisk, og disse detaljene bør strøkes ut på kort tid - så følg med på de nyeste BDD-utviklingene!

Hvis du vil lære mer om EasyB, holder jeg et foredrag om emnet på Java Emerging Technologies Conference 2008 (JET 2008) i Auckland 17. september, samt samtaler for Melbourne og Sydney Java Users Groups mens jeg Jeg er over veien for bootcampene i Melbourne og Sydney Java Power Tool. Så hvis du er interessert, og i området, følg med!

Denne historien, "Using easyb with Maven" ble opprinnelig utgitt av JavaWorld.

$config[zx-auto] not found$config[zx-overlay] not found