如何强制特定水豚测试或请求的请求会话超时?

How can I force request session timeout for a specific capybara test or request?

这是我的 session_store.rb 文件的内容:

Rails.application.config.session_store :cookie_store, key: '_myapp_session', expire_after: (Rails.env.production? ? 2.hours : 3.minute)

我想 运行 在针对匿名(未登录)用户的超时会话提交请求时进行测试:

scenario 'Submit form when session has timed out' do
  # Not logged in user
  visit my_form_path

  # set session timeout to 1 second or force cookie session timeout
  ????

  click_button('Submit')

  # Verify expectations
  ...
end

我正在使用 rails 4.2、capybara 2.12 和 capybara-webkit 1.12、rspec 3.3。我也在使用 devise 4.2,但我的场景是针对匿名用户。

当我 运行 我的应用程序正在开发时,我可以等到会话超时并且我看到该应用程序按预期工作,但我想对其进行测试。

目前无法通过 capybara-webkit 强制 cookie 会话超时。

https://github.com/thoughtbot/capybara-webkit/issues/978