gpt4 book ai didi

ruby-on-rails - cucumber 和 capybara 情景 session

转载 作者:行者123 更新时间:2023-12-04 02:01:06 25 4
gpt4 key购买 nike

我做了很多研发工作,但仍然无法回答一个简单的问题——我的 session 对象在哪里?

我有这样一个场景:

Scenario: I should be able to add products to the basket
Given I have a product named "Mousepad" # creates object using FactoryGirl
When I add "Mousepad" to basket # sends POST request to add product
Then I should have 1 item in my basket # visit basket page

这里是篮子法:

def set_current_basket
@basket = (session[:basket] ||= Basket.new)
end

它在浏览器中运行良好,但在测试中运行不佳。 @basket allways 是新对象。即使我在第一步中设置了 session[:test] = 1,在下一步中它也将是 nil。

我是不是漏掉了什么,这怎么可能?

最佳答案

Capybara 背后的想法是您将模拟用户行为,因此您不需要直接 session 访问。

但是我同意这在 100% 的情况下都不是真的,特别是当您依赖某些第三方软件时,在这种情况下我推荐 gem rack_session_access ,它将允许您像这样访问您的 session :

page.set_rack_session basket: Basket.new

并通过page.get_rack_session_key('basket')访问它

请记住,这是一种 hack,如果您的最终用户也不需要直接访问您的 session ,则您不需要直接访问它。

关于ruby-on-rails - cucumber 和 capybara 情景 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21491530/

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