api 回调未保留水豚会话
Capybara session not preserved with an api callback
我有一个具有 capybara 2.13 功能规范的 rail 5 应用程序。一个规范完成了一个由三部分组成的交易流程,其中包括重定向 url 到应用程序中的回调路径。我将会话中的事务 ID 保存为 session[:current_transaction_id]
,然后在处理回调时使用它来查找事务。这在开发中工作正常,但在使用水豚测试时,session
散列丢失 :current_transaction_id
。
我尝试按照中所述包装我的规范,但没有成功
https://github.com/teamcapybara/capybara#using-sessions
Capybara.using_session("User session") do
# log in and complete a transaction
end
如何让会话在给定的规范中持续存在?
Capybaras using_session 没有提到您所询问的会话。它指的是 Capybara 使用的浏览器或 browser/app 对实例,如果您需要在测试应用程序时同时将两个不同的用户登录到应用程序(聊天、实时状态更新等),通常会使用它。
使用基于 cookie 的会话时,您需要确保最初访问的原始(子)域(您设置事务 ID 的位置)和重定向到的域相同(至少达到会话 cookie 的级别)设置为)。如果它们不是,则会话 cookie 将不再对重定向请求有效(并且不会发送),因此交易 ID 不可用。
我有一个具有 capybara 2.13 功能规范的 rail 5 应用程序。一个规范完成了一个由三部分组成的交易流程,其中包括重定向 url 到应用程序中的回调路径。我将会话中的事务 ID 保存为 session[:current_transaction_id]
,然后在处理回调时使用它来查找事务。这在开发中工作正常,但在使用水豚测试时,session
散列丢失 :current_transaction_id
。
我尝试按照中所述包装我的规范,但没有成功 https://github.com/teamcapybara/capybara#using-sessions
Capybara.using_session("User session") do
# log in and complete a transaction
end
如何让会话在给定的规范中持续存在?
Capybaras using_session 没有提到您所询问的会话。它指的是 Capybara 使用的浏览器或 browser/app 对实例,如果您需要在测试应用程序时同时将两个不同的用户登录到应用程序(聊天、实时状态更新等),通常会使用它。
使用基于 cookie 的会话时,您需要确保最初访问的原始(子)域(您设置事务 ID 的位置)和重定向到的域相同(至少达到会话 cookie 的级别)设置为)。如果它们不是,则会话 cookie 将不再对重定向请求有效(并且不会发送),因此交易 ID 不可用。