Оператор выбора Capybara не работает с Rspec

Использование 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 или Cucumber. Если я переключаюсь на Webrat, все работает.

Детали: Rails 3.0.4, rspec-core 2.5.1, rspec-rails 2.5.0, capybara 0.1.4.2, стойка 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'

Любые идеи?


person Mike Blyth    schedule 15.03.2011    source источник
comment
Я заметил, что вершина стека находится на уровне select для помощников форм ActionView, для которых требуется 3 параметра, а уровень выше — это метод выбора Capybara.   -  person Mike Blyth    schedule 15.03.2011


Ответы (2)


Спасибо Йонасу Никласу за указание на проблему, проблему с пространством имен. Я косвенно включил ActionView::Helpers::FormOptionsHelper в тестовые примеры, так что ActionView select конфликтовал с Capybara.

person Mike Blyth    schedule 16.03.2011
comment
Йонас ужасно услужливый человек. Вам следует подумать о том, чтобы присоединиться к группе Capybara в Google, там много полезной информации. - person Tass; 24.08.2011

У меня также была проблема с пространством имен при выборе (использовалось ядро ​​​​вместо 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

Просто порядок включения исправил это.

person ryanjones    schedule 08.03.2013