Verwenden von easyb mit Maven

Easyb ist eine sehr coole Möglichkeit, Ihre Java-Anwendung im BDD-Stil mit Java zu testen. Aber wäre es nicht schön, Ihre BDD-Storys in Ihren Maven-Build-Prozess integrieren zu können? Die gute Nachricht ist, Sie können!

Das Schreiben einer Testgeschichte im BDD-Stil mit easyb ist ganz einfach. Groovy ist eine großartige Möglichkeit für Java-Entwickler, Tests schnell und effizient zu schreiben, auch wenn sie die Feinheiten der Groovy-Skriptsprache nicht kennen. In der folgenden Teststory (in einer Datei mit dem Namen "AccountDepositsStory.groovy") wird beispielsweise untersucht, was passieren soll, wenn Sie ein neues Bankkonto eröffnen:

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

Dies ist einfach genug und es gibt viele Möglichkeiten, es auszuführen. Sie können das Skript über die Befehlszeile oder mithilfe der Ant-Task ausführen. Eine meiner Lieblingstechniken ist die Verwendung des IntelliJ-Plugins, das in der Tat sehr cool ist. Als Maven-Benutzer möchte ich jedoch unbedingt EasyB-Skripte in den Maven-Erstellungsprozess integrieren.

Wie sich herausstellt, ist dies dank der auch ziemlich einfach

Maven Easyb Plugin

. Fügen Sie einfach alle Ihre EasyB-Story-Skripte unter das Feld ein

src/test/easyb

Verzeichnis und fügen Sie einen Verweis auf das EasyB Maven-Plugin in Ihren Build-Plugins hinzu, wie hier gezeigt:

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

In diesem Beispiel haben wir Easyb so eingerichtet, dass es während des ausgeführt wird

Prüfung

Lebenszyklusphase (mit anderen Worten, wenn Sie "mvn test" ausführen). Wenn Sie Ihre Tests in Maven durchführen, wird EasyB alle Geschichten, die es in der Maven finden kann, aktivieren

src/test/easyb

Verzeichnis. Konventionell betrachtet es jede Datei, die mit "* Story.groovy", "* .story", "* Specification.groovy" oder "* .specification" endet, als eine einfache Geschichte. Ein Beispiel für das in Aktion befindliche easyb-Plugin finden Sie hier:

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

Auf der anderen Seite ist das Plugin immer noch ein wenig grün - es lässt sich noch nicht in die Maven-Site-Generierung integrieren. Beispielsweise ist die Berichterstellung ziemlich einfach, und Sie müssen das Plugin selbst an die Test-Lebenszyklusphase binden. Das Projekt ist jedoch sehr dynamisch, und diese Details sollten in kürzester Zeit ausgebügelt werden - seien Sie also gespannt auf die neuesten BDD-Entwicklungen!

Wenn Sie mehr über EasyB erfahren möchten, werde ich auf der Java Emerging Technologies Conference 2008 (JET 2008) in Auckland am 17. September einen Vortrag zu diesem Thema halten sowie Vorträge für die Java-Benutzergruppen in Melbourne und Sydney, während ich Für die Java Power Tool Bootcamps in Melbourne und Sydney bin ich damit fertig. Also, wenn Sie interessiert sind und in der Gegend, kommen Sie mit!

Diese Geschichte "Verwenden von easyb mit Maven" wurde ursprünglich von JavaWorld veröffentlicht.