黃瓜特色
Cucumber 使用 Gherkin 語法來描述你的軟體在結構化自然語言中的行為。
因此,Cucumber 不是一個測試框架(一個常見的誤解),而是一個系統文件框架,與 Use Case Scenario 等其他框架沒有太大區別。常見的誤解是由於 Cucumber 文件可以自動化以確保它反映真實的系統行為。
Cucumber 文件套件由 Features
組成,每個文件都描述了軟體的一個功能,用 Gherkin 編寫並託管在自己的檔案中。通過將這些檔案組織到目錄結構中,你可以對功能進行分組和組織 :
- 銀行業/
- withdrawal.feature
- atm.feature
- 個人 loan.feature
- 貿易/
- portfolio.feature
- intraday.feature
- 抵押/
- evaluation.feature
- accounting.feature
每個 Feature
都是一個純文字檔案,由一個可選的,非結構化的,純資訊性的介紹部分和一個或多個 Scenarios
組成,每個都代表一個使用條件或用例。
例:
Feature: Documentation
As a StackOverflow user or visitor
I want to access the documentation section
Scenario: search documentation on Stack Overflow
Given I am on StackOverflow
And I go to the Documentation section
When I search for "cucumber"
And I follow the link to "cucumber"
Then I should see documentation for "cucumber"
以 Given , When , And , But 或 Then 開頭的每一行稱為 Step
。任何步驟都可以從任何這些單詞開始,無論順序如何,但通常以最自然的方式使用它們。
功能也可以通過 Tags
進行組織,編輯可以在 Feature
或 Scenario
上進行註釋以進一步對其進行分類。
通過膠水程式碼實現功能的可執行性,膠水程式碼可以用許多不同的語言(Java,Ruby,Scala,C / C++)編寫:每個 Step
與膠水程式碼匹配,以便通過常規識別 Step Definitions
(通常縮寫為 StepDef )表示式。
每個 Step
只能有一個相關的 Step Definition
。
當執行 Feature
時,執行每個組合 Scenario
,意味著每個 Scenario
中匹配 Step
s 的每個 StepDef 被執行。