Pisanie ręcznego testu funkcjonalnego

Wprowadzenie do FastAPI

Matt Eckerle

Software and Data Engineering Leader

Czym są testy funkcjonalne?

Testy systemowe

  • Zakres: Izolowane operacje systemowe
  • Cel: Walidacja funkcji systemu
  • Zasięg: Endpoint
  • Środowisko: Python z działającą aplikacją
def test_read():
    response = client.get("/items/1")
    assert response.status_code == 200

Testy funkcjonalne

  • Zakres: Zintegrowany system
  • Cel: Walidacja systemu jako całości
  • Zasięg: Aplikacja
  • Środowisko: Python z działającą aplikacją
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
Wprowadzenie do FastAPI

Przepływy testów

Diagramy przedstawiające przykłady pomyślnych i nieudanych przepływów testów

Wprowadzenie do FastAPI

Przykłady przepływów testów funkcjonalnych

Pomyślne przepływy

  • Utwórz, następnie odczytaj
  • Utwórz, następnie zaktualizuj
  • Utwórz, następnie usuń
  • ...

Nieudane przepływy

  • Odczyt bez tworzenia
  • Aktualizacja po usunięciu
  • Usunięcie bez tworzenia
  • ...
Wprowadzenie do FastAPI

Skrypty testów funkcjonalnych

  • Poza frameworkiem testowym – „testy ręczne"
  • Użycie 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
  • Przepływy budowane względem znanego stanu aplikacji
Wprowadzenie do FastAPI

Czas na ćwiczenia!

Wprowadzenie do FastAPI

Preparing Video For Download...