给定代码
env "rack.session", {:var => 'value'}
我可以在机架测试中设置会话变量。但是,我如何(使用机架测试)测试 RSpec 中的会话变量?假设,例如:
expect(env['rack.session'][:var]).to eq('value')
我似乎找不到任何用于读取 Rack 环境变量的文档,只能编写它们。
只需在最后一个请求上使用session 方法:
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
我已经使用 rack v1.6.5 和 rack-test v0.6.3 进行了测试,但它应该也适用于 rack 版本 2。