2017-05-04 1 views
0

Ich versuche, einen Test in einer Rails-Anwendung zu schreiben Capybara verwenden, dies beinhaltet:Capybara Flucht regex

expect(page).to have_content(text: /\bEdit\b/) 

ich Grenzen auf der Saite brauchen das Wort, weil andere Inhalte auf der Seite, ohne sie übereinstimmen (zum Beispiel das Wort "Editorial").

Wenn ich laufe, dass, erhalte ich einen Fehler mit der folgenden Meldung:

expected to find text "{:text=>/\\bEdit\\b/}" ... 

Notiere die Doppel auf den \b ‚s zu entkommen!

Wie kann Capybara nicht meinen Backslashes in meiner Regex entkommen?

Antwort

2

Capybaras have_content (Alias ​​von have_text) nimmt eine Zeichenfolge oder eine Regexp - keine a: Textoption. Sie wollen

expect(page).to have_content(/\bEdit\b/) 

Hinweis: Aktuelle Versionen von Capybara haben, sollten Sie einen Fehler sagen Sie angesprochen, dass: Text keine gültige Option für die have_content Matcher war, so dass ich bin mir nicht sicher, wie alt eine Version von Capybara Sie sind Laufen.