步驟定義是一個帶有表達式,它將其連結到一個或多個 Gherkin 步驟。當 Cucumber 在情境中執行 Gherkin 步驟時,它將尋找匹配的步驟定義來執行。

為了說明其運作方式,請查看以下 Gherkin 情境

Scenario: Some cukes
  Given I have 48 cukes in my belly

步驟的 I have 48 cukes in my belly 部分(Given 關鍵字後面的文字)將與以下步驟定義相符

表達式

步驟定義的表達式可以是正規表達式Cucumber 表達式。本節中的範例使用 Cucumber 表達式。如果您偏好使用正規表達式,則每次匹配的 將作為引數傳遞給步驟定義的

如果 表達式與註冊的參數類型之一的 regexp 相同,則在將捕獲的字串傳遞給步驟定義的 之前,會先轉換該字串。在上面的範例中,cukes 引數將是一個整數,因為內建 int 參數類型的 regexp\d+

狀態管理

步驟定義可以透過在實例變數中儲存狀態,將狀態傳輸到後續的步驟定義。

範圍

步驟定義不會連結到特定的功能檔案或情境。步驟定義的檔案、類別或套件名稱不會影響它將匹配的 Gherkin 步驟。唯一重要的是步驟定義的表達式。

片段

當 Cucumber 遇到沒有匹配步驟定義的 Gherkin 步驟時,它會列印一個帶有匹配的 Cucumber 表達式的步驟定義片段。您可以使用它作為新步驟定義的起點。

考慮以下 Gherkin 步驟

Given I have 3 red balls

如果您沒有匹配的步驟定義,Cucumber 將建議以下片段

如果您的未定義步驟的部分與您自己的參數類型相符,建議的片段將會使用它們。如果存在color 參數類型,Cucumber 會在建議的表達式中使用它

}

請確保在執行 Cucumber 時使用 summary 外掛程式,以便列印片段。

您可以幫助我們改進此文件。編輯此頁面