Ich habe zu viel Zeit damit verbracht, das folgende Problem zu debuggen, aber ich bin mir nicht sicher, wo das Problem auftritt.
Problem: Abrufen von 400 Bad Request, Invalid Json
als Antwort mit folgender Ausnahme:
In meinem Controller zu testende Methode:
%Vor%Entsprechender Komponententest:
%Vor%Ich habe die Diskussion hier gelesen, aber keiner der Vorschläge half.
Ich hatte ähnliche Probleme, habe sie aber bisher nicht gelöst (elegant, jedenfalls ..). Da meine Umgebung Java statt Scala war, kann ich nur eine Ahnung geben. Ich denke, dass es möglich ist, dass wenn Sie Post senden, es asynchron (Action.async bei Ihrer Methode create article) getan wird, so müssen Sie möglicherweise auf Testcode-Ergebnis warten, bevor Sie versuchen, um zu sehen, ob es OK ist.
Ich hatte ein ähnliches Problem und die Lösung ist hier . In meinem Fall war es, weil ich response.asJson()
zweimal verwende und wie von @jroper
Wenn man bedenkt, dass der Hauptteil einer HTTP-Antwort ein Stream ist und nicht etwas, das du unbedingt im Speicher puffern willst, dann macht es spüren Sie, dass Sie zweimal auf den Körper zugreifen (unabhängig davon, welches Format Sie haben) Zugriff auf den Körper in) würde nicht unterstützt werden.
Versuchen Sie, Ihre Anfrage in die Methodendefinition einzufügen.
So funktioniert es für mich (Beispiel mit POST mit JSON-Body und Ergebnis als JSON):
%Vor%Hier behandelt der Code einen JsValue und fragt seine Knoten ab, um zu überprüfen, ob die zurückgegebenen Werte mit der gewünschten Scheindatenausgabe übereinstimmen
Tags und Links scala unit-testing json playframework