【问题标题】:Capybara session not preserved with an api callbackCapybara 会话未通过 api 回调保留
【发布时间】:2018-05-19 10:27:09
【问题描述】:

我有一个带有 capybara 2.13 功能规格的 rail 5 应用程序。一个规范完成了一个由三部分组成的事务流程,其中包括一个重定向 url 到应用程序中的回调路径。我将会话中的事务 ID 保存为session[:current_transaction_id],然后在处理回调时使用它来查找事务。这在开发中运行良好,但是在使用 capybara 进行测试时,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 不是指您要询问的 session。它指的是 Capybara 使用的浏览器或浏览器/应用程序对实例,如果您需要在测试应用程序时同时将两个不同的用户登录到应用程序(聊天、实时状态更新等),通常会使用它。您是否使用基于 cookie 的会话?如果是这样,您确定最初访问的(子)域(您设置事务 id 的位置)和重定向到的域是相同的(至少到会话 cookie 设置的级别)?如果不解决这个问题,如果他们向您的问题添加测试代码。
  • 这是一个域问题!谢谢!
  • 不客气,添加为答案,以便您可以将问题标记为已完成。

标签: ruby-on-rails capybara


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2012-01-21
    • 2010-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-27
    • 2020-05-21
    • 2021-02-25
    相关资源
    最近更新 更多