Mii*_*kka 19
Rack :: Test会保留一个持久存储请求的cookie jar.你可以用它来访问它rack_mock_session.cookies.假设您有这样的处理程序:
get '/cookie/set' do
response.set_cookie "foo", :value => "bar"
end
Run Code Online (Sandbox Code Playgroud)
现在你可以用这样的东西来测试它:
it 'defines a cookie' do
get '/'
rack_mock_session.cookie_jar["foo"].should == "bar"
end
Run Code Online (Sandbox Code Playgroud)
您也可以访问cookie last_request.cookies,但顾名思义,它包含最后一个请求的cookie,而不是响应.您可以设置cookie set_cookie并使用它们清除它们clear_cookies.
it 'shows how to set a cookie' do
clear_cookies
set_cookie "foo=quux"
get '/'
last_request.cookies.should == {"foo" => "quux"}
end
Run Code Online (Sandbox Code Playgroud)
更新:如果您希望cookie jar在测试用例(it块)中保持不变,则需要在执行任何测试用例之前初始化Rack会话.为此,请将此before挂钩添加到describe块中.
before :all do
clear_cookies
end
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用例如before :each在每个请求之前设置必要的cookie.
| 归档时间: |
|
| 查看次数: |
6366 次 |
| 最近记录: |