Ich habe einen Schienen-Helfer, die ein FormularWarum schlägt have_selector "#MyId" fehl, wenn Übereinstimmung/ID = "MyId "/besteht?
#helpers/my_helper.rb
def build_form
form_for object, url: object_path, method: :post do |f|
html = f.text_input :field
html += f.submit
html.html_safe
end
end
und Tests für diesen Helfer
#spec/helpers/my_helper_spec.rb
describe MyHelper do
it { expect(helper.my_helper).to have_selector "form[action='#{objects_path}'][method='post']" } # PASSES
it { expect(helper.my_helper).to have_selector "#object_field" } #FAILS - but this should pass
it { expect(helper.my_helper).to match /id=\"object_field\"/ } # PASSES
end
ich rspec bin noch am Lernen erzeugt, so kann dies eine offensichtliche Frage sein.
Warum sind diese Tests fehlgeschlagen, wenn have_selector
an den Eingängen verwendet wird. Und doch have_selector
übergibt das Formular-Tag korrekt und match
übergibt die Eingabe-ID.
try have_selector: css "#object_field" –
Haben Sie bei der aktuellen Zeichenfolge sah Ihr Helfer zurückkehr? –
Danke @FrederickCheung, ja die Zeichenfolge enthält alle Elemente und das Formular rendert wie erwartet. Ich kann den Matcher einfach nicht dazu bringen, sich wie erwartet zu verhalten. –