在 controller spec 中直接操作session[:user_id]=1是无效的,controller 中打印 session 显示的是 not loaded
session[:user_id]=1
有什么办法吗?
@request.session[:user_id]
建议先看一遍 http://guides.rubyonrails.org/testing.html 先从 rails 自带的测试入门,然后在学习其他测试框架!
#1 楼 @woaigithub 谢谢
为什么要先学自带测试才能学其他测试框架? #2 楼 @woaigithub
#4 楼 @congteng 建议,只是建议,个中好处,自己体会吧!
#4 楼 @congteng 他的意思是让你去学习方法,就好比 LZ 的问题里在 Controller 测试当中有哪些对象可以用。这些东西都是相通的,无论你用 testunit 也好还是 rspec 也罢,万变不离其宗。
rspec 里面使用 get或者post方法的时候, get :edit, {id: book.id}, {user_id: user.id} 第三个参数貌似就是放到 session 的数据吧
get
post
get :edit, {id: book.id}, {user_id: user.id}