【发布时间】:2012-07-28 18:20:48
【问题描述】:
尝试使用会话,但得到奇怪的结果。
以下 RSpec 代码似乎生成了 2 个单独的会话:
visit start_path
post session_path, { foo: "bar" }
在start_path控制器调用的方法中:
session[:started] = '是' 提出“开始:#{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 个会话,post call 创建了一个单独的会话,还是我的应用正在做一些事情来分离会话?
为什么要创建 2 个会话?
尝试将 create 更改为另一个名称,但这并没有什么不同。
使用 cookie 存储。
【问题讨论】:
-
你使用的是哪个版本的 rails/rspec/capybara?
-
另外,您使用的是哪个驱动程序? (我使用 capybara-webkit 取得了巨大的成功)
-
Rails 3.2.2/Capybara 1.1.2/Rspec 2.11.0 和内置的 Capybara 驱动程序。
标签: ruby-on-rails rspec tdd capybara bdd