Psaní manuálního funkčního testu

Úvod do FastAPI

Matt Eckerle

Software and Data Engineering Leader

Co jsou funkční testy?

Systémové testy

  • Zaměření: Izolované operace systému
  • Účel: Ověřit funkci systému
  • Rozsah: Endpoint
  • Prostředí: Python s běžící aplikací
def test_read():
    response = client.get("/items/1")
    assert response.status_code == 200

Funkční testy

  • Zaměření: Integrovaný systém
  • Účel: Ověřit systém jako celek
  • Rozsah: Aplikace
  • Prostředí: Python s běžící aplikací
def test_delete_then_read():
    response = client.delete("/items/1")
    assert response.status_code == 200
    response = client.get("/items/1")
    assert response.status_code == 404
Úvod do FastAPI

Testovací workflow

Diagramy ukazující příklady úspěšných a neúspěšných testovacích workflow

Úvod do FastAPI

Příklady funkčních workflow

Úspěšná workflow

  • Vytvořit, pak číst
  • Vytvořit, pak upravit
  • Vytvořit, pak smazat

Neúspěšná workflow

  • Číst bez vytvoření
  • Upravit po smazání
  • Smazat bez vytvoření
Úvod do FastAPI

Skripty funkčních testů

  • Mimo testovací framework – „manuální testy“
  • Použijte requests
import requests
ENDPOINT = "http://localhost:8000/items"
# Create item "rock"
r = requests.post(ENDPOINT, json={"name": "rock"})
assert r.status_code == 200
# Get item rock
r = requests.get(ENDPOINT, json={"name": "rock"})
assert r.status_code == 200
  • Workflow stavte na známém stavu aplikace
Úvod do FastAPI

Přejděme na procvičování!

Úvod do FastAPI

Preparing Video For Download...