我有一个发布到操作的 rspec 测试。在操作中,肯定设置了会话变量,但是在我的控制器测试中,会话哈希为空。如何检查 Rspec 测试以查看控制器是否将会话变量设置为正确的值?
问问题
14722 次
3 回答
21
您可以像这样在 rspec 中直接访问会话:session[:key]
. 只需将其与您想要的值进行比较即可。
于 2013-05-02T02:32:19.207 回答
4
看到这个。session
主要问题是无法从测试代码访问该变量。要解决它,请在以下位置添加 fowling 行spec/spec_helper.rb
:
def session
last_request.env['rack.session']
end
于 2016-01-06T13:30:51.513 回答
0
你before_filter
在你的控制器中使用任何东西吗?如果before_filter
更改流程并且您的将变量分配给会话的代码甚至尚未评估,则可能是这种情况。
例如,您的控制器中可能有这一行:
# ...
before_filter :authenticate_user!
# ...
这意味着如果您没有登录,您将永远不会在此控制器中输入任何方法。所以session
变量将为空。
于 2013-07-19T14:54:34.233 回答