Операторът за избор на 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, 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'

Някакви идеи?


person Mike Blyth    schedule 15.03.2011    source източник
comment
Забелязвам, че горната част на стека е на select за помощници на формуляри на ActionView, което изисква 3 параметъра, докато нивото по-горе е методът за избор на Capybara.   -  person Mike Blyth    schedule 15.03.2011


Отговори (2)


Благодаря на Jonas Niklas, че посочи проблема, проблем с пространството на имената. Индиректно бях включил ActionView::Helpers::FormOptionsHelper в тестовите случаи, така че ActionView select беше в конфликт с този на Capybara.

person Mike Blyth    schedule 16.03.2011
comment
Джонас е ужасно полезен човек. Трябва да помислите да се присъедините към групата на Capybara в Google, има много добри лъжички. - person Tass; 24.08.2011

Имах проблем с пространството на имената и с 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

Само подреждането на включванията го оправи.

person ryanjones    schedule 08.03.2013