【JBehave】JBehave介紹

  1. JBehave介紹html

    JBehave是一個用Java編寫的BDD(Behavior-Driven-Design)框架, java界的Cucumber。(注: 一、BDD主要的目的是可以從業務領域專家的視角來編寫測試用例,以解決技術人員和業務領域專家的溝通問題。二、Cucumber是基於Ruby的BDD框架)java

  2. JBehave的特色併發

    1)、純Java實現,能調用java API的地方就能使用。
    2)、可以定義和執行基於文本的Story,讓咱們可以從用戶價值出發進行開發。(BDD都是這個目的)。
    3)、User stories能夠放在classpath,也可經過外部URL傳進來。
    4)、User stories能夠併發執行且可以指定併發執行的線程數。
    5)、能夠經過一些用戶定義的信息把User Stories造成一部完整文檔。
    6)、經過Anotation把Story的步驟對應到Java類中,還可以把自動把Story中的String參數轉換成方法對應的參數類型。(How?)
    7)、基於Anotation的運行配置信息,指定Story對應的Steps類文件
    8)、支持經過第三方IOC容器(Spring,Guice,PicoContainer,Weld)管理配置信息和Steps類
    9)、支持經過Groovy寫配置信息和Steps文件
    10)、支持報表,既能夠生成可讀性良好的報表格式(HTML,TXT ),還支持Json,XML格式供外部程序調用。
    11)、未實現的步驟會自動標記Pending
    12)、支持任何語言書寫Story
    13)、可使用Junit或者任何基於anotation的測試框架運行Story測試
    14)、支持Maven,Ant集成,經過腳本運行BDD測試腳本
    框架

  3. JBehave的結構測試

    Story:系統想要具備的功能
    Scenario:Story描述的功能的Key-Example 。插一句,若是一個功能你不能想出一個很好的例子,那麼你就須要好好想一想這個功能的價值了。我的感受,此處借用了《Specification By Examples》的思想,以實例說明功能更容易讓人理解。
    Steps:Scenario中描述的實例的具體執行步驟。
    ui

  4. JBehave的語法lua

    下面就是一個JBehave story的例子 spa

    Meta:
    @category basic
    @color blue
    
    Narrative: 
    
    In order to show the basic cart functionality
    As a user
    I want to add and remove items from the cart
    
    Scenario: Item can be added to cart
    
    Given that the cart is empty
    !-- We don't care for which item is added to the cart
    When I search for an item
    And an item is added to the cart
    Then the cart contains that item
    
    Scenario: Item can be removed from cart
    
    Given the cart contains one item
    When the item is removed
    Then the cart contents is empty
  5. 上面的例子中基本上涵蓋了JBehave的全部關鍵字(標紅的詞語就是JBehave的關鍵字)
    Meta:以鍵值對的方式提供一些關於Story和Scenario的標籤信息,咱們在運行Story的時候,能夠經過這些標籤做爲過濾項,只運行咱們想運行的信息。
    Narrative:對當前Story對應功能的一個描述,和通常Story卡上的描述差很少,In order to ….,As a ……,I want to……。
    Scenario: 關於當前場景的描述
    Given :描述當前場景的Context的Step
    !--    : JBehave中的註釋符
    When:描述用戶進行操做的Step
    Then: 描述驗收用戶操做結果的Step,
    And :Step的輔助描述關鍵字,跟着哪一個Step就表示哪一個Step的意思,如跟着When後面就表示When。


    另外這個例子中未提到的關鍵字還有:
    GivenStories:在當前Story中依賴另外一個Story。
    Examples:能夠指定一系列的數據反覆跑一個Scenario。線程


  6. 一個JBehave的BDD測試的實現步驟
    1)、配置JBehave開發環境
    2)、按照上面的語法和業務領域專家一塊兒寫文本Story。
    3)、把文本Story對應到具體執行的java文件中(經過java的Anotation技術)
    4)、配置JBehave的運行規則。
    5)、運行測試
    6)、查看測試報告code

相關文章
相關標籤/搜索