测试 测试 put 请求获取不到 session

young4u_amy · 2013年09月05日 · 最后由 young4u_amy 回复于 2013年09月09日 · 2523 次阅读

遇到一个奇怪的事,在测试put请求的时候死活得不到设置的 session 值,只有get才会得到 session 值

put :update, {:id => 111} , {:user_id => 123}
assert_redirected_to xxx_path
session[:user_id] = 123
put :update, :id => 111
assert_redirected_to xxx_path

我试着在update的 action 里加一行代码测试 (render 之前)

return false if session[:user_id].present? && session[:user_id] != 123

然后如果我在测试里传的 session 不是 123 的时候,会出现报错,update 没有 template 那种,应该说明 session 值生效了。

可同事那边试了却不好使,只有改成get才能得到我这种效果。

求各位大神帮忙分析分析,我百撕不得其姐

你先尝试在你的 Controller 里面用 logger.info 把 session[:user_id] 的打出来看看是否有值呀

请求中有没有携带 authenticity_token?没有的话可能会有问题。

那要看你的 update 里面内容是 render 或 redirect 到那里!

#1 楼 @huacnlee 恩 试过了 put 没值,get 就有值

需要 登录 后方可回复, 如果你还没有账号请 注册新账号