【问题标题】:Rails 2.3.9 Sessions Won't Work In Integration Tests AnymoreRails 2.3.9 会话不再在集成测试中工作
【发布时间】:2011-01-22 01:11:55
【问题描述】:

由于某种原因,我正在测试我的登录控制器的集成测试突然无法工作。刚刚升级到 2.3.9 并且遇到了奇怪的问题。在 2.3.5 甚至 2.3.8 中一切都很好!下面是一些不再通过的代码:

def login_user
  visit login_url
  assert_response :success
  assert_template "new"

  post session_url, :email => "abc@123.com", :password => "secret"
  assert_response :redirect
  follow_redirect!
  assert_response :success
  assert_template "sessions/organizations"

  post organizations_session_url, :id => organizations(:ace).id
  assert_response :redirect
  follow_redirect!
  assert_response :success
  assert_template "mission_control/index"
end

当用户登录时,他们的 id 会保存到 session[:user_id]。当我运行上面的测试时,它在第一个 follow_redirect! 之后失败了。似乎 session[:user_id] 正在被清除,然后要求用户在他们刚刚登录时再次登录。什么可能导致我的会话被清除?我什么都没碰过。 Rails 2.3.5 很好。 Rails 中是否存在错误?

谢谢

(顺便说一句,该网站运行良好。只是集成测试似乎在干扰我的会话。)

【问题讨论】:

    标签: ruby-on-rails integration-testing


    【解决方案1】:

    嗯,我想通了。 2.3.10也有同样的问题。

    我没有使用 Rails 2.3.10 gem,而是从他们在 github 上的 2.3 分支下载了最新的稳定代码,然后就僵住了。我猜 Rails gem 已经过时了。

    谢谢

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-12-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-15
      • 2017-11-10
      相关资源
      最近更新 更多