4

尝试使用 Cucumber 和 Devise 获得一个非常简单的场景传递 - 登录用户...(EPIC FAIL)

我有一个这样的步骤:

user = create(user_sym)
user.confirm!

visit new_user_session_path
fill_in 'Email',:with => user.email
fill_in 'Password',:with => attributes_for(user_sym)[:password]
click_button 'Sign in'
page.should have_content('Sign out')

日志显示一切正常(确认已发送电子邮件,UPDATE 插入正确的确认标志),然后我看到重定向到

www.example.com

这里和其他地方的很多帖子都提到了这一点,并使用 login_user 和 :callback => false 使其工作,但我想使用“访问”。

这可能是什么原因造成的。实际的错误是失败的测试,即没有出现退出文本。正在呈现的是 Rails 主页,即

 expected there to be text "Sign out" in "Browse the documentation Rails Guides Rails API Ruby core Ruby standard library Welcome aboard

我无法弄清楚堆栈的哪一部分正在抛出这个(因为我是新手!)。大概Capybara正在重定向?我已经看到人们得到这个工作,并且在我的开发堆栈中,它清楚地重定向到用户索引页面,正如您所期望的那样。

任何光都非常感谢。

4

1 回答 1

1

我通过在 ApplicationController 的 after_sign_in_path_for 中返回特定路径来解决此问题

  def after_sign_in_path_for(resource)
    xxxxx_path
  end

黄瓜测试中的根路由以某种方式被重定向到“example.com”

于 2013-10-12T06:56:31.707 回答