Ich versuche gerade einige Komponententests für meine Flask-Anwendung zu schreiben. In vielen meiner Ansichtsfunktionen (wie beispielsweise meinem Login) leite ich auf eine neue Seite um. Also zum Beispiel:
%Vor%Ich versuche zu überprüfen, dass diese Umleitung in meinen Komponententests passiert. Im Moment habe ich:
%Vor% Diese Funktion stellt sicher, dass die zurückgegebene Antwort 200 ist, aber die letzte Zeile ist offensichtlich keine gültige Syntax. Wie kann ich das behaupten? Meine Funktion create_user
ist einfach:
Danke!
Probieren Sie Flask-Testing
ausEs gibt eine API für assertRedirects , die Sie verwenden können
%Vor%TEST-Skript:
%Vor%Flask hat eingebaute Test-Hooks und einen Test-Client, der sich hervorragend für funktionelles Zeug eignet.
%Vor%Die Docs haben mehr Informationen darüber, wie man das macht, auch wenn Sie "bubbitr" sehen, das ist der Name der Testklasse und nichts in Flask, was mich beim ersten Mal verwirrt hat.
Eine Möglichkeit besteht darin, den Weiterleitungen nicht zu folgen (entweder follow_redirects
von Ihrer Anfrage entfernen oder explizit auf False
setzen).
Dann können Sie einfach self.assertEquals(rv.status, "200 OK")
durch ersetzen:
Wenn Sie aus irgendeinem Grund follow_redirects
weiter verwenden möchten, ist eine andere (leicht spröde) Möglichkeit, nach einer erwarteten Dashboard-Zeichenfolge zu suchen, wie eine HTML-Element-ID in der Antwort von rv.data
. z.B. self.assertIn('dashboard-id', rv.data)
Tags und Links python unit-testing flask python-unittest