Session Rails集成测试-如何模拟坏的CSRF令牌和过期的会话

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令牌以模拟此行为的对象 我还希望有一个对象,它允许我模

我刚刚更改了应用程序_controller.rb中的异常处理代码,以正确捕获
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。