Programmering

Brug af easyb med Maven

Easyb er en meget sej måde at teste din Java-applikation i BDD-stil med Java. Men ville det ikke være rart at kunne integrere dine BDD-historier i din Maven-byggeproces? Den gode nyhed er, det kan du!

At skrive en BDD-stil testhistorie med easyb er godt, let. Groovy er en fantastisk måde for Java-udviklere at skrive tests hurtigt og effektivt, selvom de ikke kender de finere punkter i Groovy-script-sprog. For eksempel undersøger følgende testhistorie (i en fil kaldet "AccountDepositsStory.groovy") hvad der skal ske, når du åbner en ny bankkonto:

 importer com.wakaleo.onlinebank.domain.Account / ** * Et simpelt scenario * / scenario "deponering af penge på en ny konto", {givet "en ny konto", {account = new Account ()} når "en første indbetaling er lavet ", {amount = 100 account.makeDeposit (beløb)} så" skal saldoen være lig med det indbetalte beløb ", {account.balance.shouldBe amount}} 

Dette er let nok, og der er mange måder at udføre det på. Du kan køre scriptet fra kommandolinjen eller ved hjælp af Ant-opgaven. En af mine foretrukne teknikker er at bruge IntelliJ-pluginet, som faktisk er meget sejt. Som en Maven-bruger efter eget valg er det, jeg virkelig ønsker at gøre, at integrere EasyB-scripts i Maven-byggeprocessen.

Som det viser sig, er dette også ret nemt takket være

Maven Easyb-plugin

. Sæt bare alle dine EasyB-story-scripts under

src / test / easyb

bibliotek og tilføj en reference til EasyB Maven-pluginet i dine build-plugins, som vist her:

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

I dette eksempel konfigurerede vi Easyb til at køre i løbet af

prøve

livscyklusfase (med andre ord, når du kører "mvn test"). Når du kører dine tests i Maven, vil EasyB sparke ind og køre alle de historier, den kan finde i

src / test / easyb

vejviser. Efter konvention betragter den enhver fil, der slutter med "* Story.groovy", "* .story", "* Specification.groovy" eller "* .specification", som en easyb-historie. Et eksempel på easyb-plugin i aktion vises her:

 C: \ Brugere \ john \ projekter \ onlinebank \ onlinebank-core>mvn test [INFO] Scanning efter projekter ... [INFO] -------------------------------------- ---------------------------------- [INFO] Opbygning af onlinebank-kerne [INFO] opgavesegment: [test ] [INFO] ---------------------------------------------- -------------------------- ... [INFO] [easyb: test {udførelse: standard}] [INFO] Brug af easyb-afhængighedsorg. easyb: easyb: jar: 0.9: kompilere [INFO] Brug af easyb-afhængighed commons-cli: commons-cli: jar: 1.1: kompilere [INFO] Brug af easyb-afhængighed org.codehaus.groovy: groovy-all-minimal: jar: 1.5. 0: kompil [java] Historik om løbende kontoindskud (AccountDepositsStory.groovy) [java] Scenarier køres: 2, Fejl: 0, Afventer: 0, Forløbet tid: 0,368 sek [java] Løbende konto hæver historien (AccountWithdrawlsStory.groovy) [java ] Scenarier køres: 2, Fejl: 0, Afventer: 0, Forløbet tid: 0.123 sek [java] Kører åben kontospecifikation (openAccount.specification) [java] Specifikationer køres: 2, Fejl: 0, Afventer: 0, Forløbet tid: 0,038 sek [java] 6 adfærd i alt kører uden fejl [ INFO] -------------------------------------------------------- ------------------------ [INFO] BYG SUCCESFULD [INFO] ------------------ -------------------------------------------------- ---- [INFO] Samlet tid: 3 sekunder [INFO] Færdig ved: Man Aug 11 10:09:24 NZST 2008 [INFO] Endelig hukommelse: 8M / 14M [INFO] ---------- -------------------------------------------------- ------------ 

På ulempen er pluginet stadig lidt grønt - det integreres ikke med Maven-webstedsgenerering endnu, for eksempel er rapporteringen ret grundlæggende, og du skal selv binde pluginet til 'test' livscyklusfasen. Projektet er dog meget dynamisk, og disse detaljer skal strækkes ud på ingen tid - så hold øje med de nyeste BDD-udviklinger!

Hvis du vil lære mere om EasyB, holder jeg et foredrag om emnet på Java Emerging Technologies Conference 2008 (JET 2008) i Auckland den 17. september samt samtaler for Melbourne og Sydney Java-brugergrupper, mens jeg Jeg er over den måde til Melbourne og Sydney Java Power Tool bootcamps. Så hvis du er interesseret, og i området, kom med!

Denne historie, "Brug af easyb med Maven" blev oprindeligt udgivet af JavaWorld.