Capybara select语句不适用于Rspec

Capybara select语句不适用于Rspec,select,rspec,cucumber,capybara,Select,Rspec,Cucumber,Capybara,将水豚与Rails 3、Rspec和Cucumber一起使用 当我使用select语句时,例如 select("Unspecified", :from=> 'record_family_') 我得到一个错误,参数数量错误(2对3)。同样,如果省略第二个参数,则会得到错误数量的参数(1代表3)。无论我使用RSpec还是Cucumber,都会发生这种情况。如果我切换到Webrat,一切都会正常 详细信息:Rails 3.0.4、rspec core 2.5.1、rspec Rails

将水豚与Rails 3、Rspec和Cucumber一起使用

当我使用select语句时,例如

    select("Unspecified", :from=> 'record_family_')
我得到一个错误,
参数数量错误(2对3)
。同样,如果省略第二个参数,则会得到错误数量的参数(1代表3)。无论我使用RSpec还是Cucumber,都会发生这种情况。如果我切换到Webrat,一切都会正常

详细信息:Rails 3.0.4、rspec core 2.5.1、rspec Rails 2.5.0、capybara 0.1.4.2、rack 1.2.1

堆栈跟踪的前几行(路径简化)是:

参数数量错误(1对3)(ArgumentError)
actionpack-3.0.5/lib/action\u view/helpers/form\u options\u helper.rb:131:in'select'
capybara-0.4.1.2/lib/capybara/dsl.rb:104:in'select'
步骤定义/sim\u db\u步骤。rb:412:in'block in'
cucumber-0.10.0/lib/cucumber/core\u ext/instance\u exec.rb:48:in'instance\u exec'
cucumber-0.10.0/lib/cucumber/core\u ext/instance\u exec.rb:48:in`block in cucumber\u instance\u exec'
cucumber-0.10.0/lib/cucumber/core\u ext/instance\u exec.rb:69:in'cucumber\u run\u with\u backtrace\u filtering'
cucumber-0.10.0/lib/cucumber/core\u ext/instance\u exec.rb:36:in'cucumber\u instance\u exec'
cucumber-0.10.0/lib/cucumber/rb_-support/rb_-step_-definition.rb:62:in'invoke'

有什么想法吗?

感谢乔纳斯·尼古拉斯指出了这个问题,一个名称空间问题。我已经间接地将
ActionView::Helpers::formoptionhelper
包含到测试用例中,因此ActionView
select
与Capybara冲突。

我也有select的名称空间问题(它使用的是内核而不是page.select)。我最终不得不改变这一点:

RSpec.configure do |config|
  config.include Capybara::DSL
  config.include ActionView::Helpers::FormOptionsHelper
end
为此:

RSpec.configure do |config|
  config.include ActionView::Helpers::FormOptionsHelper
  config.include Capybara::DSL
end

仅是包含的顺序就解决了这个问题。

我注意到ActionView表单帮助程序的堆栈顶部位于
select
,它确实需要3个参数,而上面的级别是水豚选择方法。Jonas是一个非常有帮助的人。你应该考虑加入CybBar谷歌集团,那里有很多好的独家新闻。
RSpec.configure do |config|
  config.include ActionView::Helpers::FormOptionsHelper
  config.include Capybara::DSL
end