Programování

Používání easyb s Maven

Easyb je velmi skvělý způsob, jak otestovat vaši aplikaci Java ve stylu BDD pomocí Java. Ale nebylo by hezké mít možnost integrovat své příběhy BDD do procesu sestavování Maven? Dobrá zpráva je, že můžete!

Psaní testovacího příběhu ve stylu BDD pomocí easyb je, no, snadné. Groovy je skvělý způsob, jak mohou vývojáři Java rychle a efektivně psát testy, i když neznají jemnější body skriptovacího jazyka Groovy. Například následující testovací příběh (v souboru s názvem „AccountDepositsStory.groovy“) zkoumá, co by se mělo stát při otevření nového bankovního účtu:

 import com.wakaleo.onlinebank.domain.Account / ** * Jednoduchý scénář * / scénář „vklad peněz na nový účet“, {daný „nový účet“, {účet = nový účet ()} při „počátečním vkladu je provedeno ", {amount = 100 account.makeDeposit (amount)} pak" zůstatek by se měl rovnat vložené částce ", {account.balance.shouldBe amount}} 

To je dost snadné a existuje mnoho způsobů, jak to provést. Skript můžete spustit z příkazového řádku nebo pomocí úlohy Ant. Jednou z mých oblíbených technik je použití pluginu IntelliJ, který je opravdu skvělý. Jako uživatel Maven podle vlastního výběru však opravdu chci integrovat skripty EasyB do procesu sestavování Maven.

Jak se ukázalo, i to je díky

Maven Easyb Plugin

. Jednoduše vložte všechny své scénáře příběhu EasyB pod

src / test / easyb

adresář a přidejte odkaz na plugin EasyB Maven ve svých sestavovacích pluginech, jak je znázorněno zde:

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

V tomto příkladu jsme nastavili Easyb tak, aby běžel během

test

fáze životního cyklu (jinými slovy, když spustíte „test mvn“). Když spustíte testy v Mavenu, EasyB nainstaluje a spustí všechny příběhy, které najde v

src / test / easyb

adresář. Podle konvence považuje jakýkoli soubor končící na „* Story.groovy“, „* .story“, „* Specification.groovy“ nebo „* .specification“ za jednoduchý příběh. Zde je uveden příklad pluginu easyb v akci:

 C: \ Users \ john \ projects \ onlinebank \ onlinebank-core>test MVN [INFO] Hledání projektů ... [INFO] -------------------------------------- ---------------------------------- [INFO] Vytváření onlinebank-core [INFO] segmentu úkolů: [test ] [INFO] ---------------------------------------------- -------------------------- ... [INFO] [easyb: test {provedení: výchozí}] [INFO] Použití závislosti na easyb org. easyb: easyb: jar: 0.9: kompilace [INFO] Použití závislosti easyb commons-cli: commons-cli: jar: 1.1: kompilace [INFO] Použití závislosti easyb org.codehaus.groovy: groovy-all-minimal: jar: 1.5. 0: kompilace [java] Příběh o spuštění účtu (AccountDepositsStory.groovy) [java] Spuštění scénářů: 2, Selhání: 0, Nevyřízeno: 0, Uplynulý čas: 0,368 s [java] Příběh o spuštění účtu (AccountWithdrawlsStory.groovy) [java ] Scénáře spuštěny: 2, Selhání: 0, Čeká na vyřízení: 0, Uplynulý čas: 0,123 s [java] Probíhá spuštění specifikace otevřeného účtu (openAccount.specification) [java] Běh specifikací: 2, Selhání: 0, Čekající: 0, Uplynulý čas: 0,038 s [java] Celkem běží 6 chování bez selhání [ INFO] ------------------------------------------------ ------------------------ [INFO] BUILD SUCCESSFUL [INFO] ------------------ -------------------------------------------------- ---- [INFO] Celkový čas: 3 sekundy [INFO] Dokončeno v: Po 11. srpna 10:09:24 NZST 2008 [INFO] Konečná paměť: 8M / 14M [INFO] ---------- -------------------------------------------------- ------------ 

Nevýhodou je, že plugin je stále trochu zelený - dosud se neintegruje s generací webů Maven, například hlášení je docela základní a je třeba svázat plugin s fází životního cyklu „testu“ sami. Projekt je však velmi dynamický a tyto podrobnosti by měly být okamžitě vyžehleny - takže zůstaňte naladěni na nejnovější vývoj BDD!

Pokud se chcete o EasyB dozvědět více, budu hovořit na toto téma na konferenci Java Emerging Technologies Conference 2008 (JET 2008) v Aucklandu dne 17. září a také na přednáškách pro skupiny uživatelů Java v Melbourne a Sydney, zatímco budu Tímto způsobem jsem zavedl bootcampy Melbourne a Sydney Java Power Tool. Takže pokud máte zájem a v této oblasti, pojďte!

Tento příběh „Používání easyb s Mavenem“ původně publikoval JavaWorld.