将Capybara与Rails 3,Rspec和Cucumber一起使用,
当我使用select语句时,例如
select("Unspecified", :from=> 'record_family_')
我收到错误wrong number of arguments (2 for 3)
。同样,如果我省略第二个参数,我会得到wrong number of arguments (1 for 3)
。无论我使用的是RSpec还是黄瓜,都会发生这种情况。如果我切换到Webrat,一切正常。
详细信息:Rails 3.0.4,rspec-core 2.5.1,rspec-rails 2.5.0,capybara 0.1.4.2,rack 1.2.1
堆栈跟踪的前几行(简化路径)是:
wrong number of arguments (1 for 3) (ArgumentError)
actionpack-3.0.5/lib/action_view/helpers/form_options_helper.rb:131:in `select'
capybara-0.4.1.2/lib/capybara/dsl.rb:104:in `select'
step_definitions/sim_db_steps.rb:412:in `block in <top (required)>'
cucumber-0.10.0/lib/cucumber/core_ext/instance_exec.rb:48:in `instance_exec'
cucumber-0.10.0/lib/cucumber/core_ext/instance_exec.rb:48:in `block in cucumber_instance_exec'
cucumber-0.10.0/lib/cucumber/core_ext/instance_exec.rb:69:in `cucumber_run_with_backtrace_filtering'
cucumber-0.10.0/lib/cucumber/core_ext/instance_exec.rb:36:in `cucumber_instance_exec'
cucumber-0.10.0/lib/cucumber/rb_support/rb_step_definition.rb:62:in `invoke'
有什么想法吗?
答案 0 :(得分:2)
感谢Jonas Niklas指出这个问题,这是一个名称空间问题。我间接地将ActionView::Helpers::FormOptionsHelper
包含在测试用例中,以便ActionView select
与Capybara进行冲突。
答案 1 :(得分:0)
我的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
只是包含的顺序修复了它。