我是rails的新手,我正在使用Capybara和cucumber编写一些测试。
Scenario: Successful login
Given a user "admin@adm.com" with password "admin123"
And I am on the sign in page
Given /^I am on the sign in page$/ do |page_name|
visit('/users/sign_in')
save_and_open_page
end
我无法找到一种方法来编写命名路径而不是'/ users / sign_in'网址。
我怎么能搞清楚?
答案 0 :(得分:1)
这样做的方法是,
转到项目根目录并运行
rake routes
这将给出rails所处理的所有请求的列表,如下所示:
new_user_session GET /users/sign_in(.:format) devise/sessions#new
user_session POST /users/sign_in(.:format) devise/sessions#create
destroy_user_session DELETE /users/sign_out(.:format) devise/sessions#destroy
所以看看上面的第一列,我们看到了“new_user_session”
这可以写成new_user_session_path并放在visit()中:
visit(new_user_session_path)
并且(据我所知)它的工作正常:)