使用click_link与Cucumber Scenario

时间:2011-06-07 00:00:11

标签: ruby-on-rails ruby cucumber

我有以下功能文件,它试图访问某个页面,选择一个链接然后编辑用户数据。

Scenario: Edit an existing member of the club
    Given I go to the member list page
    And I choose the first item
    And I fill in the "First Name" with "Bloggs
    When I press "Update"
    Then I should be on the member list page
    And I should see "Bloggs"

并且member_step.rb文件包含

Given /^I choose the first item$/ do
    #save_and_open_page
    visit members_path
    click_link "1"
end

我的routes.rb文件有

Gfs::Application.routes.draw do
   resources :members
end

问题是我无法使用 click_link“1”步骤。意图是

  1. 导航至'/ members'索引页面
  2. 索引页面显示每个前缀为数字的用户列表,即链接。
  3. 选择链接
  4. 我所知道的是索引页面确实显示了一个列表,我的路线工作('/ members),但我的Cucumber失败了,我不是 沐浴在绿色的荣耀中 即可。

    save_and_open_page 诊断仅显示索引页的标题,而不显示详细信息,就好像控制器未访问数据一样

    欢迎提出建议。

3 个答案:

答案 0 :(得分:2)

是否有创建成员数据的背景?如果不是,则可能是数据不存在。

我还建议添加一个类似

的步骤
And I should not see "Bloggs"

在更新记录之前。

答案 1 :(得分:2)

如果我理解你的错误,你真的不会看到“1”链接,因为:

Given I go to the member list page <-- first step
And I choose the first item <-- second step

...扩展为:

Given I go to the member list page <-- first step
visit members_path
click_link "1"

why are you visiting the member's path after you just visited the member list page? you should be checking that you ARE in the member's path. Something like:


Given I have existing users(generate members here using factory or whatever)
And I go to the member list page( go to member page)
When I follow "1" (click the first member)
Then I should be on the "1"'s member page
When I fill in...etc you get the point

希望有所帮助!

答案 2 :(得分:0)

我要建议IFF“1”是一个真正的html锚链接,然后你可以考虑使用

And I follow "1"

您可以轻松地将它包装在您自己的语法中,以使其更美观,但And I follow...步骤是您在web_steps.rb中开箱即用的步骤。

使用那个的另一个好处是你可以使用选择器使点击更具体:

And I follow "1" within ".my-kickbutt-div"

或者那些东西。

要检查的另一件事。如果您启用了@javascript,则可能会在save_and_open_page中看到不正确的数据。我的应用程序是javascript / ajax很重,我必须在关闭javascript的浏览器中打开输出,看看那里真正可见的是什么:P这可能不是你的问题,但以防万一......

相关问题