Introduction
Dans ce laboratoire, vous allez apprendre à tester les applications Flask à l'aide du framework pytest. Le test est une partie importante du processus de développement logiciel, car il aide à garantir la correction et la fiabilité de votre application. Flask fournit des utilitaires de test, facilitant la rédaction de tests pour différentes parties de votre application.
Note: Vous devez créer le fichier de code vous-même et l'exécuter dans l'environnement. Vous pouvez prévisualiser l'état du service Flask sur Web 5000.
Configurer l'environnement de test
Avant de commencer à écrire des tests pour votre application Flask, vous devez configurer l'environnement de test. Voici les étapes pour ce faire :
Installez le framework
pytesten exécutant la commande suivante :pip install pytestCréez un nouveau fichier nommé
conftest.pydans le dossiertestsde votre application Flask.Dans le fichier
conftest.py, importez les modules nécessaires :import pytest from my_app import create_appDéfinissez un fixture nommé
appqui crée et configure une instance d'application :@pytest.fixture() def app(): app = create_app() app.config.update({ "TESTING": True, }) yield appNotez que si vous utilisez un modèle de fabrique d'applications, vous devriez modifier le fixture en conséquence.
Définissez des fixtures pour le client de test et le lanceur de CLI :
@pytest.fixture() def client(app): return app.test_client() @pytest.fixture() def runner(app): return app.test_cli_runner()
Écrire des tests
Maintenant que vous avez configuré l'environnement de test, vous pouvez commencer à écrire des tests pour votre application Flask. Voici quelques exemples de tests courants que vous pourriez vouloir écrire :
Tester une route :
def test_hello(client): response = client.get("/") assert response.status_code == 200 assert b"Hello, World!" in response.dataCe test envoie une requête GET à la route racine ("/") et vérifie que le code de statut de la réponse est 200 et que les données de réponse contiennent la chaîne "Hello, World!".
Tester une requête POST :
def test_login(client): response = client.post("/login", data={"username": "test", "password": "pass"}) assert response.status_code == 200 assert b"Logged in successfully" in response.dataCe test envoie une requête POST à la route de connexion ("/login") avec des données de formulaire contenant un nom d'utilisateur et un mot de passe. Il vérifie que le code de statut de la réponse est 200 et que les données de réponse contiennent la chaîne "Logged in successfully".
Tester une commande :
def test_hello_command(runner): result = runner.invoke(args=["hello"]) assert result.exit_code == 0 assert "Hello, World!" in result.outputCe test invoque une commande nommée "hello" et vérifie que la commande se termine avec un code 0 et que la sortie contient la chaîne "Hello, World!".
Exécuter les tests
Pour exécuter les tests, accédez au dossier racine de votre application Flask dans le terminal et exécutez la commande suivante :
pytest
Cette commande découvrira et exécutera tous les tests dans le dossier tests. Vous devriez voir les résultats des tests dans la sortie du terminal.
Sommaire
Dans ce laboratoire, vous avez appris à tester les applications Flask à l'aide du framework pytest. Vous avez configuré l'environnement de test, écrit des tests pour différentes parties de votre application et exécuté les tests pour vérifier la correction de votre code. Le test est une partie essentielle du processus de développement logiciel, et écrire des tests pour votre application Flask vous aidera à garantir sa fiabilité et sa stabilité.