Ich teste ein Formular in einer Rails App mit Capybara.capybara nicht übergeben Parameter auswählen
Das Formular enthält 2 Auswahlfelder mit jeweils Standardoptionen. Diese Optionen werden als Parameter übergeben, wenn das Formular in Entwicklung und Produktion eingereicht wird. Capybara übermittelt sie jedoch aus irgendeinem Grund nicht zu Testzwecken. Capybara findet die Auswahlfelder und die Optionen OK, denn wenn ich in nicht vorhandene Optionen einlege, löst ein Fehler aus. Capybara übergibt jedoch weder eine Standardoption noch eine ausgewählte Option als Parameter, wenn das Formular übermittelt wird.
Die Form Schnipsel ist wie folgt:
<%= form_for(@reservation, :url => account_reservations_path(account.id), remote: false, :html=>{:id=>'dates_form'}) do |f| %>
<tr>
<td style:"text-align:center" colspan="2"><%= f.submit 'Submit Dates, Source of Booking & Room Preference', class: "btn btn-primary btn-sm" %></td>
</tr>
<td>
<%= f.text_field :check_in_date, id: check_in_date_id, placeholder: "Check In Date" %></td>
<td><%= f.text_field :check_out_date, id: check_out_date_id, placeholder: "Check Out Date" %></td>
</tr>
<tr>
<td colspan="1"><%= f.select(:source_of_booking, Reservation::SOURCE_OF_BOOKING, {}, {:style => "width:150px;", default: Reservation::SOURCE_OF_BOOKING[0]}) %></td>
<td>
<%= f.select(:bed_preference, @bed_options, {}, {:style => "width:100px;"}) %>
</td>
</tr>
<% end %>
Die Verarbeitung der Formularübermittlung durch die Schienen-Server ist wie folgt:
Processing by ReservationsController#create as HTML
Parameter: { "utf8 "=>" ✓ "," authenticity_token "=>" 7Q3jakPp91bleWe1qZQFGRvYTXIxj9AdIYbeVtrF3bg = "," commit "=>" Datum einreichen, Quelle der Buchung & Zimmerpräferenz "," Reservierung "=> {" check_in_date "=>" Freitag, 29. Juli 2016 "," check_out_date "=>" Montag, 1. August 2016 "," source_of_booking "=>" Email Direct "," bed_preference "=>" Queen "}, "account_id"=>" 5015" }
Aber in Capybara die Parameter aus den Auswahloptionen fehlen, auch wenn sie Standardwerte haben
Started POST "/accounts/625262370/reservations" for 127.0.0.1 at 2016-07-25 18:23:59 -0500
Verarbeitung von ReservationsController #create as HTML Parameter: {"utf8" => "✓", "Reservierung" => {"check_in_date" => "2016-07-25", "check_out_date" => "2016-07-28"}, "commit" => "Daten einreichen, Quelle der Buchung & Raumpräferenz", "account_id" => "625262370"}
Der Testcode gibt keinen Fehler aus, bis die endgültige Seite den Text bestätigt hat. Capybara findet die Auswahlbox, verarbeitet sie aber nicht.
Welchen Treiber verwenden Sie mit Capybara? –