Wie Sie mehrere Anfragen mit verschiedenen Daten in Grails-Integrationstests durchführen

8

Ich schreibe einen Grails 2.2.1-Integrationstest mit dem Spock-Plugin, in dem ich versuche, zwei Datensätze auf den gleichen Controller-Endpunkt zu stellen:

%Vor%

Das Problem, das ich sehe, ist, dass dieselbe JSON für beide Anfragen an addToInventory () gesendet wird.

Diese StackOverflow-Frage schlägt vor, anzurufen controller.request.reset (), aber das hat nicht funktioniert (Keine Signatur der Methode: org.codehouse.groovy.grails.plugins.testing.GrailsMockHttpServletRequest.reset ()).

Was versuche ich?

    
Bryan O'Sullivan 12.09.2013, 11:22
quelle

3 Antworten

6

"Wo:" kann verwendet werden, um datengesteuertes Testen im Spock-Test-Framework durchzuführen. Versuchen Sie es mit dem folgenden Beispiel:

%Vor%

Hoffe das hilft !!!

    
Anuj Aneja 12.09.2013, 14:25
quelle
2

Es gibt tatsächlich einen anderen Weg. Einfügen:

%Vor%

zu Beginn Ihres zweiten Tests. Dies wird effektiv einen neuen ServletContext, eine neue MockHttpServletRequest, eine neue MockHttpServletResponse erstellen und dann alle drei in den aktuellen Thread binden.

    
mmigdol 22.05.2015 01:29
quelle
0

Während uns klar ist, dass where -Klauseln verwendet werden sollten, um Tests sauber zu halten, gibt es Zeiten, in denen ein Test mehr als eine Anfrage ausführen muss. In meinem Fall wollte ich testen, dass, wenn es 2 wiederholte POSTS erhalten hat, das zweite korrekt zurückgewiesen wurde.

Ich fand, dass das Zurücksetzen der Antwort tat, was ich brauchte:

%Vor%

Um die Antwort zu löschen.

    
adeady 06.10.2016 17:43
quelle

Tags und Links