Een handmatige functionele test schrijven

Introductie tot FastAPI

Matt Eckerle

Software and Data Engineering Leader

Wat zijn functionele tests?

Systeemtests

  • Focus: Afzonderlijke systeemtaken
  • Doel: Functie van systeem valideren
  • Scope: Endpoint
  • Omgeving: Python-omgeving met draaiende app
def test_read():
    response = client.get("/items/1")
    assert response.status_code == 200

Functionele tests

  • Focus: Geïntegreerd systeem
  • Doel: Systeem als geheel valideren
  • Scope: Applicatie
  • Omgeving: Python-omgeving met draaiende app
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
Introductie tot FastAPI

Testworkflows

Diagrammen met voorbeeldworkflows van geslaagde en mislukte tests

Introductie tot FastAPI

Voorbeelden van functionele testworkflows

Geslaagde workflows

  • Maken, daarna lezen
  • Maken, daarna bijwerken
  • Maken, daarna verwijderen
  • ...

Mislukte workflows

  • Lezen zonder maken
  • Bijwerken na verwijderen
  • Verwijderen zonder maken
  • ...
Introductie tot FastAPI

Scripts voor functionele tests

  • Buiten testframework — "Handmatige tests"
  • Gebruik 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
  • Workflows gebaseerd op bekende applicatiestatus
Introductie tot FastAPI

Laten we oefenen!

Introductie tot FastAPI

Preparing Video For Download...