gpt4 book ai didi

ruby-on-rails - 如何在测试之间重复使用 Capybara session ?

转载 作者:行者123 更新时间:2023-12-03 14:02:04 26 4
gpt4 key购买 nike

我想继续使用同一个 session ,我的意思是 Rails 在各种 Test::Unit 之间的 session 使用 Capybara 的集成测试。 Capybara::Session对象在所有测试中都是相同的,因为它被重复使用,但是当我在另一个测试中访问另一个页面时,我会立即注销。

挖掘我发现capybara_session.driver.browser.manage.all_cookies在一个测试和下一个测试之间被清除。

有什么想法吗?或者为什么?或如何避免?

为了解决这个问题,我将 cookie 保存在一个类变量中,稍后通过运行重新添加:

capybara_session.driver.browser.manage.add_cookie(@@cookie)

它似乎工作,cookie在那里,但是当有请求时,cookie被另一个替换,所以它没有效果。

有没有其他方法可以实现这一目标?

最佳答案

在与页面交互的 capybara 代码之后添加以下内容:

Capybara.current_session.instance_variable_set(:@touched, false)

or

page.instance_variable_set(:@touched, false)

如果这不起作用,这些可能会有所帮助:

https://github.com/railsware/rack_session_access

http://collectiveidea.com/blog/archives/2012/01/05/capybara-cucumber-and-how-the-cookie-crumbles/

关于ruby-on-rails - 如何在测试之间重复使用 Capybara session ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12605692/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com