Ruby on rails 未使用api回调保留Capybara会话

Ruby on rails 未使用api回调保留Capybara会话,ruby-on-rails,capybara,Ruby On Rails,Capybara,我有一个rail 5应用程序,具有水豚2.13的功能规格。一个规范完成了一个由三部分组成的事务流,其中包括指向应用程序中回调路径的重定向url。我将会话中的事务ID保存为session[:current\u transaction\u ID],然后在处理回调时使用它来查找事务。这在开发过程中效果很好,但在使用capybara进行测试时,会话散列缺少:当前事务id 我尝试按照中的描述包装我的规范,但未成功 如何使会话在给定的规范中保持?水豚使用\u会话并不是指您询问的会话。它指的是Capybar

我有一个rail 5应用程序,具有水豚2.13的功能规格。一个规范完成了一个由三部分组成的事务流,其中包括指向应用程序中回调路径的重定向url。我将会话中的事务ID保存为
session[:current\u transaction\u ID]
,然后在处理回调时使用它来查找事务。这在开发过程中效果很好,但在使用capybara进行测试时,
会话
散列缺少
:当前事务id

我尝试按照中的描述包装我的规范,但未成功


如何使会话在给定的规范中保持?

水豚使用\u会话并不是指您询问的会话。它指的是Capybara使用的浏览器或浏览器/应用程序对实例,如果您需要在测试应用程序(聊天、实时状态更新等)时同时将两个不同的用户登录到该应用程序,则通常会使用该实例


使用基于cookie的会话时,您需要确保最初访问的原始(子)域(设置事务id的地方)和重定向到的域相同(至少与会话cookie设置的级别相同)。如果它们不是,会话cookie将不再对重定向请求有效(且未发送),因此事务id不可用。

Capybaras
使用\u session
不会指您询问的
会话。它指的是Capybara使用的浏览器或浏览器/应用程序对实例,如果您需要在测试应用程序(聊天、实时状态更新等)时同时将两个不同的用户登录到该应用程序,则通常会使用该实例。您正在使用基于cookie的会话吗?如果是,您是否确定最初访问的(子)域(您在其中设置事务id)和重定向到的域相同(至少与会话cookie设置的级别相同)?若并没有解决这个问题,若他们是添加测试代码到你们的问题。这是一个域问题!非常感谢。不客气,添加为答案,以便您可以将问题标记为已完成。
Capybara.using_session("User session") do
  # log in and complete a transaction
end