rspec testet Ajax-Antwort (sollte eine partielle rendern)

8

Ich möchte testen, ob meine Controller-Aktion einen partiellen Render-Vorgang ausführt.

Ich habe herumgestöbert und ich kann anscheinend nichts finden, was funktioniert.

Aktion erstellen:

%Vor%

Spezifikation:

%Vor%     
recursive_acronym 15.04.2011, 16:56
quelle

3 Antworten

2

Aktualisieren sehen Sie die Antwort von bluefish unten, es scheint die richtige Antwort zu sein

Würden Sie Capybara für Ihre Integrationstests in Betracht ziehen? Ich fand Ajax schwierig mit Rspec allein zu testen. In deinem Fall bin ich mir nicht einmal sicher, ob du schon eine Antwort bekommst. In Capybara wartet es darauf, dass der Ajax-Ruf beendet wird, und Sie können die page.has_xxxx aufrufen, um zu sehen, ob sie aktualisiert wurde. Hier ist ein Beispiel:

%Vor%     
James 15.04.2011, 18:05
quelle
48

Wenn Sie nach einer REAL-Antwort suchen ... (d. h. vollständig in RSpec und nicht mit Capybara), sagt die RSpec-Dokumentation, dass render_template ein Wrapper auf assert_template ist. assert_template ( gemäß den Dokumenten ) gibt außerdem an, dass Sie überprüfen können, ob ein partielles Element gerendert wurde, indem Sie Folgendes einschließen: Teilschlüssel.

Probieren Sie es aus ...

%Vor%     
BlueFish 10.06.2011 01:59
quelle
1

Eine weitere gute Möglichkeit, Ihre Ajax-Controller-Methode zu testen, besteht darin, die Zuweisungen zu überprüfen, die später zum Rendern des Ergebnisses verwendet werden. Hier ist ein kleines Beispiel:

Controller

%Vor%

JBuilder

%Vor%

Rspec Controller Test

%Vor%     
jethroo 24.10.2013 18:04
quelle

Tags und Links