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
Testclient sitzt! Als Nächstes: API-Tests schreiben.