Skriva ett manuellt funktionstest

Introduktion till FastAPI

Matt Eckerle

Software and Data Engineering Leader

Vad är funktionstester?

Systemtester

  • Fokus: Isolerade systemoperationer
  • Syfte: Validera systemfunktion
  • Omfång: Endpoint
  • Miljö: Python-miljö med körande app
def test_read():
    response = client.get("/items/1")
    assert response.status_code == 200

Funktionstester

  • Fokus: Integrerat system
  • Syfte: Validera systemet som helhet
  • Omfång: Applikation
  • Miljö: Python-miljö med körande 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
Introduktion till FastAPI

Testarbetsflöden

Diagram som visar exempel på lyckade och misslyckade testarbetsflöden

Introduktion till FastAPI

Exempel på funktionstestarbetsflöden

Lyckade arbetsflöden

  • Skapa, sedan läsa
  • Skapa, sedan uppdatera
  • Skapa, sedan ta bort
  • ...

Misslyckade arbetsflöden

  • Läsa utan att skapa
  • Uppdatera efter borttagning
  • Ta bort utan att skapa
  • ...
Introduktion till FastAPI

Funktionstestskript

  • Utanför testramverket – "Manuella tester"
  • Använd 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
  • Arbetsflöden byggda mot känt applikationstillstånd
Introduktion till FastAPI

Låt oss öva!

Introduktion till FastAPI

Preparing Video For Download...