使用RSpec使用Rack :: Test测试会话变量

时间:2015-01-26 18:20:06

标签: ruby session rspec rack rack-test

给出代码

env "rack.session", {:var => 'value'}

我可以在rack-test中设置会话变量。但是,我如何(使用机架测试)测试RSpec中的所述会话变量?假设,例如:

expect(env['rack.session'][:var]).to eq('value')

我似乎无法找到任何有关读取Rack环境变量的文档,只能编写它们。

1 个答案:

答案 0 :(得分:3)

只需在最后一次请求中使用session method

last_request.session

这将为您提供会话哈希。 样本:

it 'allows to access the session' do                                                                                                                                          
  get '/'                                                                                                                                                                     
  session = last_request.session                                                                                                                                              
  expect(session).to be_a Hash                                                                                                                                                
  expect(session[:var]).to eq 'value'                                                                                                                                         
end

我已经使用机架v1.6.5和机架测试v0.6.3进行了测试,但它也可以与机架版本2一起使用。