[英]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.