Ohjelmointi

Easybin käyttö Mavenin kanssa

Easyb on erittäin hieno tapa testata Java-sovellustasi BDD-tyyliin Java-sovelluksella. Mutta eikö olisikaan mukavaa pystyä integroimaan BDD-tarinasi Maven-rakentamisprosessiisi? Hyvä uutinen on, voit!

BDD-tyylisen testitarinan kirjoittaminen easybillä on hyvin helppoa. Groovy on erinomainen tapa Java-kehittäjille kirjoittaa testejä nopeasti ja tehokkaasti, vaikka he eivät tiedä Groovy-komentosarjakielen hienoja kohtia. Esimerkiksi seuraava testikertomus (tiedostossa nimeltä "AccountDepositsStory.groovy") tutkii, mitä pitäisi tapahtua, kun avaat uuden pankkitilin:

 tuo com.wakaleo.onlinebank.domain.Account / ** * Yksinkertainen skenaario * / skenaario "rahan tallettaminen uudelle tilille", {annettu "uusi tili", {tili = uusi tili ()} kun "ensimmäinen talletus" tehdään ", {määrä = 100 tili.makeDeposit (summa)}, sitten" saldon on oltava yhtä suuri kuin talletettu summa ", {account.balance.shouldBe summa}} 

Tämä on tarpeeksi helppoa, ja on monia tapoja toteuttaa se. Voit suorittaa komentosarjan komentoriviltä tai Ant-tehtävän avulla. Yksi suosikkitekniikoistani on käyttää IntelliJ-laajennusta, joka on todellakin erittäin siistiä. Valinnaisena Maven-käyttäjänä haluan kuitenkin todella integroida EasyB-komentosarjat Maven-rakennusprosessiin.

Kuten käy ilmi, myös tämä on melko helppoa

Maven Easyb -laajennus

. Laita kaikki EasyB-tarinaohjelmat vain

src / test / easyb

hakemistoon ja lisää viite EasyB Maven -laajennukseen rakennuslisäosissasi, kuten tässä näytetään:

  ... ... org. asyb maven-easyb-plugin 0.9 -testi 

Tässä esimerkissä asetimme Easybin suorittamaan

testata

elinkaarivaihe (toisin sanoen, kun suoritat "mvn test"). Kun suoritat testisi Mavenissa, EasyB käynnistää ja suorittaa kaikki tarinat, jotka se voi löytää

src / test / easyb

hakemistoon. Yleensä se pitää kaikkia tiedostoja, jotka päättyvät "* Story.groovy", "* .story", "* Specification.groovy" tai "* .specification" easyb-tarinaan. Tässä on esimerkki easyb-laajennuksesta toiminnassa:

 C: \ Käyttäjät \ john \ projektit \ verkkopankki \ verkkopankki-ydin>mvn-testi [INFO] Etsitään projekteja ... [INFO] -------------------------------------- ---------------------------------- [INFO] Verkkopankin ytimen [INFO] rakentaminen tehtäväsegmentti: [testi ] [INFO] ---------------------------------------------- -------------------------- ... [INFO] [easyb: testi {suoritus: oletus}] [INFO] Easyb-riippuvuusorganisaation käyttäminen. easyb: easyb: jar: 0.9: koota [INFO] Käyttämällä easyb-riippuvuus commons-cli: commons-cli: jar: 1.1: koota [INFO] Easyb-riippuvuuden käyttäminen org.codehaus.groovy: groovy-all-minimal: jar: 1.5. 0: käännä [java] Käynnissä olevan tilin talletustarina (AccountDepositsStory.groovy) [java] Suoritetut skenaariot: 2, Epäonnistumiset: 0, Odottaa: 0, Kulunut aika: 0,368 sekuntia [java] Käynnissä oleva tili peruuttaa tarinan (AccountWithdrawlsStory.groovy) [java ] Skenaariot suoritetaan: 2, epäonnistumiset: 0, odottaa: 0, kulunut aika: 0,123 s [java] Suoritetaan avoimen tilin määrittely (openAccount.specification) [java] Suoritetut määritykset: 2, epäonnistumiset: 0, odottaa: 0, kulunut aika: 0,038 s [java] 6 käyttäytymistä suoritetaan ilman vikoja [ INFO] ------------------------------------------------ ------------------------ [INFO] RAKENNA MENESTYVÄT [INFO] ------------------ -------------------------------------------------- ---- [INFO] Kokonaisaika: 3 sekuntia [INFO] Päättynyt: Ma 11. elokuuta 10:09:24 NZST 2008 [INFO] Lopullinen muisti: 8M / 14M [INFO] ---------- -------------------------------------------------- ------------ 

Haittapuolena on, että laajennus on edelleen hieman vihreä - se ei vielä integroitu Maven-sivustosukellukseen, esimerkiksi raportointi on melko yksinkertaista, ja sinun on sidottava laajennus itse testin elinkaarivaiheeseen. Projekti on kuitenkin erittäin dynaaminen projekti, ja nämä yksityiskohdat pitäisi silittää hetkessä - joten pysy kuulolla viimeisimmistä BDD-kehityksistä!

Jos haluat oppia lisää EasyB: stä, puhun aiheesta aiheesta Aucklandissa 17. syyskuuta 2008 järjestettävässä Java Emerging Technologies Conference (JET 2008) -keskustelussa sekä Melbournen ja Sydneyn Java-käyttäjäryhmille. Olen tuolla puolen Melbournen ja Sydneyn Java Power Tool -kenkäkeskuksissa. Joten, jos olet kiinnostunut, ja alue, tule mukaan!

Tämän tarinan "Easybin käyttö Mavenin kanssa" julkaisi alun perin JavaWorld.