簡體   English   中英

黃瓜和水豚情景會議

[英]Cucumber and capybara scenario 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背后的想法是您將模擬用戶行為,因此您不需要直接會話訪問。

但是我同意100%的情況並非如此,特別是當你依賴某些第三方軟件時,在這種情況下我推薦gem rack_session_access ,它會允許你訪問你的會話:

page.set_rack_session basket: Basket.new

並通過page.get_rack_session_key('basket')訪問它

請記住,這是一個黑客,如果您的最終用戶也不需要,您不應該直接訪問您的會話。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM