Ruby 中的 Cucumber 步驟定義

在 features / step_definitions / documentation.rb 中:

When /^I go to the "([^"]+)" documentation$/ do |section|
  path_part =
    case section
      when "Documentation"
        "documentation"
      else
        raise "Unknown documentation section: #{section}"
    end
  visit "/documentation/#{path_part}/topics"
end

Then /^I should see the "([^"]+) documentation"$/ do |section|
  expect(page).to have_css('h2.doctag_title a', text: section)
end

這些步驟執行 Web 應用程式。它們儘可能簡單,同時仍然實用。

每個步驟都以 Gherkin 關鍵字開頭,該關鍵字在步驟定義檔案中是一個向 Cucumber 註冊步驟的方法。步驟定義方法採用與場景中的線匹配的正規表示式和在場景到達匹配線時執行的塊。正規表示式中的捕獲組作為塊引數傳遞給塊。

When 步驟有一個簡單的內聯示例,從人類可讀的引用到頁面(文件)到 URL。Real Cucumber 套件通常將此邏輯放在一個單獨的方法中。visit 方法由 Capybara 提供。Capybara 不需要使用 Cucumber,儘管它非常常用。visit 告訴 Capybara 控制的瀏覽器訪問給定的 URL。

Then 步驟顯示瞭如何測試頁面的內容。expect / to 由 RSpec 提供(同樣,黃瓜不需要,但非常常用)。have_css 由 Capybara 提供。期望是給定的 CSS 選擇器匹配包含給定文字的頁面上的元素。請注意,如果瀏覽器請求失敗,此期望將失敗。

有關更多示例,請參閱 步驟定義主題