Angenommen, ich möchte die folgende Flask-API testen (aus Ссылка ):
%Vor% Nachdem ich dies als flaskapi.py
gespeichert und ausgeführt habe, führe ich im selben Verzeichnis das Skript test_flaskapi.py
:
Beide Tests bestehen, aber für den zweiten Test (definiert in der Klasse TestFlaskApi
) habe ich noch nicht herausgefunden, wie man behauptet, dass die JSON-Antwort wie erwartet ist (nämlich {'hello': 'world'}
). Dies liegt daran, dass es sich um eine Instanz von flask.wrappers.Response
handelt (was wahrscheinlich im Wesentlichen ein Werkzeug Response-Objekt ist (vgl. Ссылка )), und ich konnte kein Äquivalent der json()
Methode für requests
'finden Antwort Objekt.
Wie kann ich Aussagen zum JSON-Inhalt des zweiten response
machen?
Flask bietet einen test_client, den Sie in Ihren Tests verwenden können:
%Vor%Was Sie dort machen, ist kein Unit-Test. In jedem Fall, wenn Sie die Anfragen-Bibliothek oder den Kolben-Client verwenden, führen Sie Integrationstests durch Machen Sie tatsächliche HTTP-Aufrufe an die Endpunkte und testen Sie die Interaktion.
Entweder der Titel der Frage oder der Ansatz ist nicht korrekt.
Mit Python3 habe ich den Fehler TypeError: the JSON object must be str, not bytes
bekommen. Es ist erforderlich, zu dekodieren:
Diese Frage gibt eine Erklärung.
Tags und Links python unit-testing flask werkzeug flask-restful