Beim Testen einer JSON-Antwort von einem RSPEC-Controller-Test mit dem JBuilder von DHH ist mein response.body immer "{}". Es funktioniert gut in den Entwicklungs-/Produktionsmodi UND wenn ich die to_json Methode anstelle von jbuilder verwende, bekomme ich in meinem response.body den richtigen JSON.Warum gibt JBuilder beim Testen von RSPEC keinen Antworttext in JSON zurück
Jeder hat eine Ahnung, warum mein response.body beim Testen immer "{}" wäre.
----- Debugger
es "sollte den Warenkorb Artikel über JSON zurückgeben",: Fokus tun
get: Index: format =>: json
Ende
(RDB: 1) response.body
"{}"
Sie müssen 'render_views' aufrufen, da das Rendering beim Ausführen von Controllern standardmäßig deaktiviert ist. Dies beschleunigt den Testlauf, da Sie das Controller-Verhalten nur in einem Controller-Test testen sollten. –
wie man 'render_views' verwendet, Ref: https://www.relishapp.com/rspec/rspec-rails/v/3-5/docs/controller-specs/render-views –
https://github.com/ rspec/rspec-rails > Hinweis: Um mehr isolierte Tests zu unterstützen, werden Ansichten in den Controller-Spezifikationen nicht standardmäßig gerendert. Wenn Sie die diskrete Ansichtslogik überprüfen, verwenden Sie eine Ansichtsspezifikation. Wenn Sie das Verhalten eines Controllers überprüfen und zusammen anzeigen, berücksichtigen Sie eine Anforderungsspezifikation. Sie können 'render_views' verwenden, wenn Sie die gerenderten Ansichtsinhalte in einer Controller-Spezifikation überprüfen müssen, dies wird jedoch nicht empfohlen. –