So testen Sie DeferredResult timeoutResult

10

Ich implementiere lange Umfrage nach dem Frühjahr Blog von vor einiger Zeit .

Hier meine konvertierte Methode mit der gleichen Antwortsignatur wie zuvor, aber anstatt sofort zu antworten, verwendet sie jetzt lange Abfragen:

%Vor%

Insbesondere möchte ich die pendingOnTimeout -Antwort zurückgeben, wenn die Anfrage zu lange dauert (was ich unmittelbar zuvor zurückgegeben habe), um zu verhindern, dass Proxies die Anfrage abschneiden.

Jetzt denke ich, dass ich das so funktioniert habe, wie es ist, aber ich würde gerne einen Komponententest schreiben, der dies bestätigt. Alle meine Versuche, MockMvc (über webAppContextSetup) zu verwenden, liefern mir jedoch keine Möglichkeit, zu behaupten, dass ich einen Header accepted erhalte. Wenn ich zum Beispiel folgendes versuche:

%Vor%

Ich bekomme den folgenden Stacktrace:

  

java.lang.IllegalStateException: Async-Ergebnis für Handler [public org.springframework.web.context.request.async.DeferredResult & gt; nl.bioprodict.blast.api.PollController.poll (java.lang.String)] wurde während des angegebenen timeToWait = 25000 nicht gesetzt       bei org.springframework.util.Assert.state (Assert.java:392)       at org.springframework.test.web.servlet.DefaultMvcResult.getAsyncResult (DefaultMvcResult.java:143)       an org.springframework.test.web.servlet.DefaultMvcResult.getAsyncResult (DefaultMvcResult.java:120)       unter org.springframework.test.web.servlet.request.MockMvcRequestBuilders.asyncDispatch (MockMvcRequestBuilders.java:235)       bei nl.bioprodict.blast.docs.PollControllerDocumentation.pollPending (PollControllerDocumentation.java:53)   ...

Die Frühjahrs-Framework-Tests im Zusammenhang damit, die ich finden konnte, verwenden alle spöttisch scheint: Ссылка

Wie kann ich die korrekte Behandlung von DeferredResult timeoutResult testen?

    
Tim 17.12.2015, 19:58
quelle

1 Antwort

4

In meinem Fall, nachdem ich Quellquellcode durchgegangen bin und das Timeout (10000 Millisekunden) eingestellt und asynchrone Ergebnisse erhalten habe, löste es sich für mich als;

%Vor%

Mein ganzer Testcode war;

%Vor%

Hoffe es hilft ..

    
myuce 11.07.2017 11:20
quelle