【发布时间】: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