Zum Hauptinhalt springen

API-Tests schreiben

Testfälle

  1. Liste leer/ok
  2. Create gültig → 201
  3. Create ungültig → 400
  4. Get unbekannte id → 404
  5. Delete → danach 404

Beispiel

def test_create_validation(self):
res = self.client.post("/api/cards", json={})
self.assertEqual(res.status_code, 400)

def test_create_ok(self):
res = self.client.post(
"/api/cards",
json={"front": "Katze", "back": "cat"},
)
self.assertEqual(res.status_code, 201)

Isolation

Tests sollten eine Test-DB nutzen, nicht die echte Produktionsdatei.

app.config["DATABASE"] = "test.db"

Rate mal!

Warum Test-DB?

Auflösung

Damit Tests Daten nicht zerschießen und reproduzierbar bleiben.

Probiere es selbst

Experiment 1

400-Test.

Experiment 2

201-Test.

Experiment 3

Test-DB-Pfad setzen.

Übungen

Level 1

3 Testfälle listen.

Level 2

Ein 400-Test.

Level 3

Create + Get Kette.

Mini-Quiz

Mini-QuizWas gehoert zu guten API-Tests?

Tests sitzen! Mini-Projekt: Lernkarten-API.