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

  • Cible : Opérations du système isolées
  • But : Valider le fonctionnement du système
  • Portée : Point de terminaison
  • 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

  • Cible : 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

Parcours de test

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

Introduction à FastAPI

Exemples de parcours de tests fonctionnels

Parcours réussis

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

Parcours en échec

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

Scripts de tests fonctionnels

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

Passons à la pratique !

Introduction à FastAPI

Preparing Video For Download...