如何在黄瓜特征文件中传递值(href是准确的)

时间:2014-01-15 14:26:03

标签: ruby cucumber watir

我有一个黄瓜特征文件,如下所示,

鉴于我已登录控制台

  • 当我导航到“href1”页面时
  • 当我导航到“href2”页面时
  • 当我导航到“href3”页面时
  • 当我导航到“href4”页面时

而是写了4次when命令,我想知道我是否能以某种方式传递href的值并在when语句中调用它。

我有一个步骤定义,如下所示:

When(/^I navigate to the "(.*)" page$/) do |navigation_link|
   @browser.link(:href => navigation_link).when_present.click
end

如果您需要更多信息,请与我们联系。

1 个答案:

答案 0 :(得分:1)

有多种选择:

a)如果您需要测试可以独立导航到每个页面,可以使用Scenario Outline之类的:

Scenario Outline: Test navigation
  Given I am logged in to the console
  When I navigate to the "<href>" page
Examples:
  |href         |
  |<actual_url1>|
  |....         |
  |<actual_url4>|

在这种情况下,您的步骤不需要修改,应该按原样运行。

b)如果您需要以依赖方式导航到页面,即到达第4页,则需要您按照第1页 - >&gt;进行操作。第2页 - &gt; ...第X页 - &gt;第4页,您可以使用table之类的:

Scenario: Test navigation
  Given I am logged in to the console
  When I navigate through the following pages: 
  |<actual_url1>|
  |....         |
  |<actual_url4>|

然后在你的步骤定义中:

When(/^i navigate through the following pages:$/) do |table|
   table.raw.each do |navigation_link|
     @browser.link(:href => navigation_link.join).when_present.click
   end
end

(详情请参阅表格和摘要:http://cukes.info/step-definitions.html

但是,如果您只想检查是否可以导航到第4页,我建议不要使用其中任何一个。我宁愿创建仅导航到第4页的步骤,并且在该步骤的定义中 - &gt;将变量中的url_paths(更好地放在单独的路径文件中并从那里加载) - &gt;导航到其他先决条件页面 - &gt;导航到最后一页。

这样您只能描述行为而不是文字导航点。