Ich habe ein Problem beim Testen meiner Controller mit RSpec - der Aufruf response.body gibt immer eine leere Zeichenfolge zurück. Im Browser wird alles korrekt gerendert, und Gurkenfunktionstests scheinen es richtig zu machen, aber RSpec schlägt jedes Mal fehl.
Andere Erwartungen an das Antwortobjekt, wie z. B. response.should render_template('index')
problemlos bestanden.
Hat jemand von Ihnen dieses Problem schon einmal erlebt? Vielleicht kann die Antwort HTML auf eine andere Weise erhalten werden?
Wie für Versionen, Rails 2.1.0, RSpec 1.2.7.
quelle
RSpec 2+: Wenn Sie die End-to-End-URL zum Antworttext überprüfen möchten, verwenden Sie eine Anforderungsspezifikation anstelle einer Controller-Spezifikation .
quelle
Als ich mit einem ähnlichen Problem arbeitete (das mich zu dieser Frage führte), kam mir der Gedanke, dass es verschiedene Möglichkeiten gibt, dieselbe Katze zu häuten. Mit anderen Worten, anstatt nach dem Text zu suchen, können Sie möglicherweise den Inhalt des Flashs überprüfen.
könnte eine äquivalente Prüfung sein zu:
Letzteres scheint mir etwas flexibler zu sein, da es in beide Richtungen abläuft, aber möglicherweise nicht in allen Fällen angemessen ist.
Prost,
John
quelle
Standardmäßig deaktiviert die RSpec-Rails-Konfiguration das Rendern von Vorlagen für Controller-Spezifikationen
Eine Möglichkeit, dies zu beheben, besteht darin, die
render_views
Einstellung in Ihrerrails_helper.rb
Datei zu aktivieren . Auf diese Weise können Sie in all Ihren Tests global arbeiten.Oder verwenden Sie die render_views-Deklaration einer einzelnen Gruppe:
Mehr dazu lesen Sie hier .
quelle