Menggunakan easyb dengan Maven

Easyb adalah cara yang sangat keren untuk menguji aplikasi Java Anda dalam gaya BDD dengan Java. Tetapi bukankah menyenangkan untuk dapat mengintegrasikan kisah BDD anda ke dalam proses pembuatan Maven anda? Berita baiknya, anda boleh!

Menulis kisah ujian gaya BDD dengan easyb memang baik. Groovy adalah cara yang baik bagi pembangun Java untuk menulis ujian dengan cepat dan cekap, walaupun mereka tidak mengetahui poin-poin yang lebih baik dari bahasa skrip Groovy. Sebagai contoh, kisah ujian berikut (dalam fail bernama "AccountDepositsStory.groovy") menerangkan perkara yang harus berlaku semasa anda membuka akaun bank baru:

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

Ini cukup mudah, dan terdapat banyak cara untuk melaksanakannya. Anda boleh menjalankan skrip dari baris perintah, atau menggunakan tugas Semut. Salah satu teknik kegemaran saya adalah menggunakan plugin IntelliJ, yang sememangnya sangat keren. Namun, sebagai pilihan pengguna Maven, apa yang sebenarnya ingin saya lakukan adalah mengintegrasikan skrip EasyB ke dalam proses pembuatan Maven.

Ternyata, ini juga cukup mudah, terima kasih kepada

Pemalam Maven Easyb

. Letakkan semua skrip cerita EasyB anda di bawah

src/test/easyb

direktori dan tambahkan rujukan ke plugin EasyB Maven dalam plugin build anda, seperti yang ditunjukkan di sini:

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

Dalam contoh ini, kami menyediakan Easyb untuk dijalankan semasa

ujian

fasa kitaran hayat (dengan kata lain, semasa anda menjalankan "ujian mvn"). Semasa anda menjalankan ujian di Maven, EasyB akan memulakan dan menjalankan semua cerita yang dapat dijumpai di

src/test/easyb

direktori. Secara konvensyen, ia menganggap fail yang diakhiri dengan "* Story.groovy", "* .story", "* Specification.groovy" atau "* .specification" adalah kisah yang mudah. Contoh tindakan plugin easyb ditunjukkan di sini:

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

Kelemahannya, pemalamnya masih sedikit hijau - ia tidak berintegrasi dengan generasi laman Maven, misalnya, pelaporannya cukup asas, dan anda perlu mengikat pemalam ke fasa kitaran hidup 'ujian' sendiri. Walau bagaimanapun, projek ini sangat dinamik, dan butiran ini harus diselesaikan dalam masa yang singkat - jadi nantikan perkembangan BDD terkini!

Sekiranya anda ingin mengetahui lebih lanjut mengenai EasyB, saya akan memberikan ceramah mengenai perkara ini di Java Emerging Technologies Conference 2008 (JET 2008) di Auckland pada 17 September, serta ceramah untuk Melbourne dan Sydney Java Groups semasa saya Lebih dari itu untuk bootcamps Alat Kuasa Java Melbourne dan Sydney. Oleh itu, jika anda berminat, dan di kawasan ini, ikutilah!

Kisah ini, "Using easyb with Maven" pada awalnya diterbitkan oleh JavaWorld.