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 选择器匹配包含给定文本的页面上的元素。请注意,如果浏览器请求失败,此期望将失败。

有关更多示例,请参阅 步骤定义主题