Ich benutze Capybara anstelle von Webrat in Schienen. Ich habe Capybara installiert und benutze gem 'Capybara' in Gemfile. wenn ich
benutze %Vor%es gibt einen Fehler
%Vor%Testdatei ist wie folgt:
%Vor%Ich bin mir nicht sicher, welche Version von Edelsteinen Sie verwenden, aber ich stieß auf eine ähnliche Instanz, bei der die Verwendung von: text fehlgeschlagen ist, aber wenn ich: content verwendet hat, hat es den Test bestanden. Ich benutze Schienen 3.2.3, rspec-Schienen 2.9.0, Capybara 1.1.2 und therubyracer Edelsteine auf Ubuntu Lucid Lynx.
Ersetzen Sie
%Vor%mit
%Vor% Das Problem besteht darin, dass Browser die <title>
-Tags als unsichtbar behandeln. (Danke DreadPirateShawn für die Verknüpfung mit zu diesem Thema).
Es gibt keinen "sauberen" Weg, um den Titel zu erhalten, aber mit ein bisschen Hack können Sie den Wert des Titels noch testen, indem Sie Folgendes tun:
%Vor% Verwenden Sie NICHT das :content
-Symbol, da in älteren Versionen von Capybara ungültige Tags ignoriert werden und es so aussieht, als wäre Ihr Test bestanden. Die neuere Version wird Ihnen eine nette Fehlermeldung wie:
ArgumentError: Ungültige Schlüssel: content, sollte einer der folgenden sein: text,: visible,: zwischen,: count,: maximum,: minimum
Ich habe ein ähnliches Problem, nur um Sie wissen zu lassen, die Verwendung von: Inhalt wird in Capybara nicht unterstützt, sollte es sein: Text.
Das Problem mit: content ist, dass es von Capybara nicht erkannt wird und dann ignoriert und als BESTANDEN angezeigt wird, aber das ist ein falsches Verhalten.
Wenn Sie also Capybara verwenden, schalten Sie alle: content auf: text, um zu sehen, ob der Test wirklich erfolgreich ist, vielleicht werden Fehler nicht bemerkt.
Ich stieß auf die gleichen Probleme. Empirisch das Folgende ist, was ich gefunden habe:
%Vor%erwartet, dass Ihre HTML-Ausgabe ein Tag wie folgt enthält:
%Vor%jedoch, wenn Sie Folgendes verwenden: Inhalt statt: Text wie folgt
%Vor%Dann wird erwartet, dass Ihre HTML-Ausgabe ein Tag wie folgt enthält
%Vor% Wenn also das resultierende HTML-Rendering <title text="AnyTitle"/>
-Tag enthält, sollten Sie Folgendes verwenden: text
Andernfalls, wenn das resultierende HTML-Rendering <title>AnyTitle</title>
-Tag enthält, können Sie stattdessen: content verwenden.
P.S. Meine Gem-Umgebungen: Capybara-2.0.2, Schienen-3.2.12, rspec-rails-2.12.2, webrat-0.7.3 Wenn Webrat entfernt wird, wird das Schlüsselwort ": conetnt" von Capybara nicht erkannt.
Aber der saubere Weg, es zu reparieren, ist: Webrat loswerden und einen stabilen Capybara-1.1.2 installieren, der in der Gemfile enthalten ist
%Vor%Siehe Prusswans Antwort