Rails 2.3.9会话将不再适用于集成测试

时间:2011-01-22 01:11:55

标签: ruby-on-rails integration-testing

出于某种原因,我的测试登录控制器的集成测试突然无效。刚升级到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会被保存到会话[:user_id]。当我运行上面的测试时,它在第一个follow_redirect之后失败!似乎会话[:user_id]已被清除,然后要求用户在刚刚执行时再次登录。什么可能导致我的会话被清除?我没有触及任何东西。 Rails 2.3.5很好。 Rails中有错误吗?

由于

(顺便说一下,网站运行正常。只是集成测试似乎弄乱了我的会话。)

1 个答案:

答案 0 :(得分:0)

好吧我明白了。 2.3.10也有同样的问题。

我没有使用Rails 2.3.10 gem,而是从github上的2.3分支下载了最新的稳定代码并冻结了。我猜Rails宝石已经过时了。

由于