Параметр флажка Formtastic отправляется Capybara иначе, чем в реальном приложении - PullRequest
6 голосов
/ 18 марта 2011

Установлен следующий флажок формы:

<%= semantic_form_for @store do |f| %>
  <%= f.inputs do %>
    <%= f.input :services, :as => :check_boxes, :collection => Service.all %>  
  <% end -%>
<% end -%>

отправляет неверные параметры для: служб в тесте Cucumber с использованием Capybara, что приводит к сбою теста, в то время как само приложение отправляет правильные параметры, которые обрабатываются в порядке:

#cucumber steps using the boiler_plate capybara web_steps.rb:
Given a "Mail Order" service
...(steps for rest of the form)...
When I check "Mail Order" 
And I press "Create Store"
Then I should see "Store was successfully created."
And I should see "Mail Order"

#params sent by cucumber
"store"=>{"services"=>["[\"4d8247ed7f5bfd2275000004\"]"]

#params sent by app on manual test
"store"=>{"services"=>["4d8247ed7f5bfd2275000004"]}

Хотя сама HTML-форма отображается одинаково в обоих случаях:

<input id="store_services_4d8247ed7f5bfd2275000004" name="store[services][]" type="checkbox" value="4d8247ed7f5bfd2275000004" />

Похоже, что где-то при построении параметров запроса пары ключ / значение формы для этого поля анализируются по-разному при отправке Cucumber / Capybara.

Кто-нибудь еще сталкивался с этим?

1 Ответ

1 голос
/ 19 июня 2011

Отвечая на мой собственный вопрос:

Получил указатель от автора Capybara, Jonas Nicklas, который привел меня к этому патч-тесту для стойки, который еще не был зафиксирован

Пока я просто использую ветвь и ветвь, в которых находится патч:

gem 'rack-test', :git => 'https://github.com/econsultancy/rack-test.git', :branch => 'econsultancy-20110119'

И это помогает.Я предполагаю, что этот патч будет объединен очень скоро, так как он был представлен пару месяцев назад.

...