Rédiger un test fonctionnel manuel

Introduction à FastAPI

Matt Eckerle

Software and Data Engineering Leader

Qu'est-ce qu'un test fonctionnel ?

Tests système

  • Focus : opérations système isolées
  • But : valider la fonction du système
  • Portée : endpoint
  • Environnement : env Python avec l'app en cours d'exécution
def test_read():
    response = client.get("/items/1")
    assert response.status_code == 200

Tests fonctionnels

  • Focus : système intégré
  • But : valider le système globalement
  • Portée : application
  • Environnement : env Python avec l'app en cours d'exécution
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
Introduction à FastAPI

Workflows de test

Schémas illustrant des workflows de test réussis et en échec

Introduction à FastAPI

Exemples de workflows de tests fonctionnels

Workflows réussis

  • Créer, puis lire
  • Créer, puis mettre à jour
  • Créer, puis supprimer

Workflows en échec

  • Lire sans créer
  • Mettre à jour après suppression
  • Supprimer sans créer
Introduction à FastAPI

Scripts de tests fonctionnels

  • Hors framework de test – « tests manuels »
  • Utiliser requests
import requests
ENDPOINT = "http://localhost:8000/items"
# Créer l'item "rock"
r = requests.post(ENDPOINT, json={"name": "rock"})
assert r.status_code == 200
# Récupérer l'item rock
r = requests.get(ENDPOINT, json={"name": "rock"})
assert r.status_code == 200
  • Workflows basés sur un état connu de l'application
Introduction à FastAPI

Passons à la pratique !

Introduction à FastAPI

Preparing Video For Download...