Session Rails集成测试-如何模拟坏的CSRF令牌和过期的会话
我刚刚更改了应用程序_controller.rb中的异常处理代码,以正确捕获Session Rails集成测试-如何模拟坏的CSRF令牌和过期的会话,session,ruby-on-rails-4,integration-testing,csrf,Session,Ruby On Rails 4,Integration Testing,Csrf,我刚刚更改了应用程序_controller.rb中的异常处理代码,以正确捕获ActionController::InvalidAuthenticityToken 我之前在做一个从异常中营救,它是在ActionController::InvalidAuthenticationToken中的recuse_之后定义的。这是优先权,我打算从代码中拯救_的计划没有执行 我想编写一个集成测试来验证这种行为。如何创建一个允许我向post请求发送错误CSRF令牌以模拟此行为的对象 我还希望有一个对象,它允许我模
ActionController::InvalidAuthenticityToken
我之前在做一个从异常中营救,它是在ActionController::InvalidAuthenticationToken中的recuse_之后定义的。这是优先权,我打算从代码中拯救_的计划没有执行
我想编写一个集成测试来验证这种行为。如何创建一个允许我向post请求发送错误CSRF令牌以模拟此行为的对象
我还希望有一个对象,它允许我模拟一个过期的会话来发出get请求。如何实施这些集成测试?坏的CSRF令牌可以通过以下方式进行模拟:
with_forgery_protection do
post user_session_path, {:authenticity_token => 'foo'}
assert redirected_to_new_user_session_path
end
可以使用TimeCop gem模拟过期会话:
Timecop.travel 2.days.from.now do
get some_authorized_path
assert_redirect_to new_user_session_path
end
您只需存根verified\u请求?
即可返回false。