0

我是 Rails 新手,我正在使用 Capybara 和黄瓜编写一些测试。

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' url。

我怎样才能弄清楚?

4

1 回答 1

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)

而且(据我所知)它工作得很好:)

于 2012-09-11T15:24:08.220 回答