我有以下功能文件,它试图访问某个页面,选择一个链接然后编辑用户数据。
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”步骤。意图是
我所知道的是索引页面确实显示了一个列表,我的路线工作('/ members),但我的Cucumber失败了,我不是 沐浴在绿色的荣耀中 即可。
save_and_open_page 诊断仅显示索引页的标题,而不显示详细信息,就好像控制器未访问数据一样
欢迎提出建议。
答案 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这可能不是你的问题,但以防万一......