Mit Rails, rspec und Capybara klicken, ich versuche, Ihre typische ERB erzeugte Form zu testen:Wie die Form begehen Schaltfläche in Capybara
<form action="/pages/1" id="edit_page_1" method="post">
<input id="page_title" name="page[title]" type="text">
<input name="commit" type="submit" value="Update Page">
</form>
ich zwei Arten von Feature-Spezifikationen laufen, jene, die das sind egal welche Sprache und welche I18N spezifisch sind (für Internationalisierungstests).
Das Problem ist, gibt es keine klare Möglichkeit, klicken Sie auf diese Schaltfläche mit Capybara absenden, es sei denn, ich vermisse das Offensichtliche. Ich würde einfach click('commit')
erwarten, um den Trick zu tun.
- Mit
click_button('Update Page')
funktioniert, ist aber offensichtlich sprachspezifisch und kann nicht mit den neuen und bearbeiten Vorlagen verwendet werden, obwohl sie die gleiche Formularvorlage machen. - Das Hinzufügen einer ID zum Submit-Button funktioniert, aber ich möchte den Code nicht ausschließlich ändern, weil der Test dies erfordert.
- Mit einem CSS-oder XML-Matcher sehen beide hässlich aus (ein Benutzer würde nie wissen/kümmern sich um den Zugriff auf ein Element auf diese Weise) und es ist übertrieben.
Wie haben Sie es in 'rails_spec.rb' importiert? –
Das hängt von Ihrer Konfiguration ab, aber Sie könnten "require" spec/support/form_helpers.rb am Anfang der Datei hinzufügen, wenn Sie den oben vorgeschlagenen Pfad verwendet haben. – IAmNaN