Zum Hauptinhalt springen

Flask-Testclient

Idee

Flask bringt einen Testclient, der HTTP-Anfragen an deine App simuliert.

import unittest
from app import app # deine App-Fabrik/Datei

class TestAPI(unittest.TestCase):
def setUp(self):
app.config["TESTING"] = True
self.client = app.test_client()

def test_ping(self):
res = self.client.get("/api/ping")
self.assertEqual(res.status_code, 200)

JSON senden

res = self.client.post(
"/api/cards",
json={"front": "Hund", "back": "dog"},
)
self.assertEqual(res.status_code, 201)

Rate mal!

Braucht man Internet für den Testclient?

Auflösung

Nein – er spricht die App im Prozess an.

Probiere es selbst

Experiment 1

GET testen.

Experiment 2

Statuscode assert.

Experiment 3

POST json.

Übungen

Level 1

TESTING Flag.

Level 2

test_client get.

Level 3

assertEqual auf JSON-Feld (res.get_json()).

Level-3-Idee
data = res.get_json()
self.assertEqual(data["data"]["front"], "Hund")

Mini-Quiz

Mini-QuizWas ist der Flask-Testclient?

Testclient sitzt! Als Nächstes: API-Tests schreiben.