Cucumber 是一個支援行為驅動開發 (BDD) 的工具。如果您是行為驅動開發的新手,請先閱讀我們的 BDD 簡介

什麼是 Cucumber?

好的,既然您知道 BDD 是關於探索、協作和範例(而不是測試),讓我們來看看 Cucumber。

Cucumber 會讀取以純文字撰寫的可執行規格,並驗證軟體是否按照這些規格執行。規格由多個範例情境組成。例如:

Scenario: Breaker guesses a word
  Given the Maker has chosen a word
  When the Breaker makes a guess
  Then the Maker is asked to score

每個情境都是 Cucumber 要逐步完成的步驟列表。Cucumber 會驗證軟體是否符合規格,並產生報告,指出每個情境的 ✅ 成功或 ❌ 失敗。

為了讓 Cucumber 理解情境,它們必須遵循一些基本的語法規則,稱為 Gherkin

什麼是 Gherkin?

Gherkin 是一組語法規則,它使純文字結構化到足以讓 Cucumber 理解。上面的情境是用 Gherkin 撰寫的。

Gherkin 有多個用途:

  • 明確的可執行規格
  • 使用 Cucumber 進行自動化測試
  • 記錄系統實際的行為方式

Single source of Truth

Cucumber 語法有多種不同風味,適用於許多口語語言,以便您的團隊可以使用您自己的語言中的關鍵字。

Gherkin 文件儲存在 .feature 文字檔中,通常與軟體一起在原始碼控制中進行版本控制。

有關更多詳細資訊,請參閱Gherkin 參考

什麼是步驟定義?

步驟定義將 Gherkin 步驟連接到程式碼。步驟定義執行步驟應執行的動作。因此,步驟定義將規格硬連結到實作。

┌────────────┐                 ┌──────────────┐                 ┌───────────┐
│   Steps    │                 │     Step     │                 │           │
│ in Gherkin ├──matched with──>│ Definitions  ├───manipulates──>│  System   │
│            │                 │              │                 │           │
└────────────┘                 └──────────────┘                 └───────────┘

步驟定義可以用許多程式語言編寫。以下是使用 JavaScript 的範例:

When("{maker} starts a game", function(maker) {
  maker.startGameWithWord({ word: "whale" })
})

您可以協助我們改善此文件。編輯此頁面