BDD JBehave教學(1)使用心得

前情提要 Java BDD 測試框架選擇

        JBehave較老牌,功能較多,甚至支援Gherkin(Cucumber所使用)語法,也就是原本使用Cucumber的也可以輕鬆跳槽JBehave,搶人意味濃厚,其實JBehave簡單好用,可是官方很多小細節的處理,處理的不好,導致一開始讓人覺得門檻很高,如官方範例中沒有簡單的起手project,然後TestNG的範例只是示範用法,而且還有問題Orz,導致在玩的過程差點放棄。



        Cucumber的範例就好多了,簡單清楚沒問題,但抱著要有被虐不屈不撓的精神,還是硬著頭皮繼續摸索JBehave最近才比較有破關的感覺,一 但了解了之後,就會覺得其實JBhave的概念挺簡單的,只是幹嘛把入手搞得那麼複雜?還有些設定可以透過maven,這些對剛入門的人來說,真的會搞得一頭霧水,但進階部分就可以感受到JBehave文件寫得比較好了。

        兩邊都試玩的感想是,如果你需要很基本的BDD,Cucumber就夠用了,但是JBehave提供你更多進階的功能,Cucumber跟JBehave的選擇就是廣度與深度選擇囉,Cucumber提供多語言,JBehave提供多功能,所以未來我會選擇JBehave來實作我之後想做的東西!

        我是在Intellij上使用Cucumber與JBehave,其中要注意一下JBehave的plugin "JBehave Support"在Android Studio上無法找到,真是陰謀阿,Cucumber我是使用"Cucumber for Java",沒想到上傳到GitHub上又發現新問題,又花了很多時間調整,真是Orz。

        接下來,來說說心得吧,果然有些事情還是要玩了才能體會,JBehave的實作跟關鍵字驅動一樣,只是概念上的不同,在JBhave中使用step把過程區分為

  • Given 初始化物件的步驟
  • When 物件執行的步驟
  • Then  驗證物件執行結果的步驟




     
        而每一個step就是對應到一個method,而step當然可以重複使用,結果來看跟關鍵字的做法真是一模模一樣樣阿,所以讓我對Robot Framework的怨念全消
plugin讓我們可以很方便的撰寫Story
當我們有整個專案的功能完整步驟時,未來寫測試只需要編寫Story就可以達成了!
下次在來分享使用過程與操作吧!

最後附上教學範例,歡迎一起來體會BDD的世界吧

留言