試圖使用會話,但得到奇怪的結果。與Rspec和水豚的多次會議?
以下RSpec的代碼似乎會產生2個獨立的會話:
visit start_path
post session_path, { foo: "bar" }
在該方法中由start_path控制器稱爲:
會話[:開始] = '是' 提出「開始: #{session.inspect}」
在會話控制器:
def create
session[:foo] = params[:foo]
head :created
puts "Sessions controller: #{session.inspect}"
end
輸出看起來像:
Start: {"session_id"=>"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" ...
Sessions controller: {"session_id"=>"yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy" ...
會話ID是不同的。
這是因爲RSpec創建2個會話,後調用創建一個單獨的會話,或者我的應用程序正在做一些事情來分隔會話?
爲什麼會有2個會話被創建?
試圖將create
更改爲其他名稱,但這沒有什麼區別。
使用cookie存儲。
您使用的是rails/rspec/capybara的哪個版本? – shigeya 2012-07-31 03:10:55
另外,您正在使用哪個驅動程序? (我使用capybara-webkit獲得巨大成功) – shigeya 2012-07-31 03:18:50
Rails 3.2.2/Capybara 1.1.2/Rspec 2.11.0和內置的Capybara驅動程序。 – 2012-07-31 11:10:38