Test des applications Flask

Beginner

This tutorial is from open-source community. Access the source code

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 :

  1. Installez le framework pytest en exécutant la commande suivante :

    pip install pytest
    
  2. Créez un nouveau fichier nommé conftest.py dans le dossier tests de votre application Flask.

  3. Dans le fichier conftest.py, importez les modules nécessaires :

    import pytest
    from my_app import create_app
    
  4. Définissez un fixture nommé app qui crée et configure une instance d'application :

    @pytest.fixture()
    def app():
        app = create_app()
        app.config.update({
            "TESTING": True,
        })
        yield app
    

    Notez que si vous utilisez un modèle de fabrique d'applications, vous devriez modifier le fixture en conséquence.

  5. 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 :

  1. Tester une route :

    def test_hello(client):
        response = client.get("/")
        assert response.status_code == 200
        assert b"Hello, World!" in response.data
    

    Ce 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!".

  2. 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.data
    

    Ce 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".

  3. Tester une commande :

    def test_hello_command(runner):
        result = runner.invoke(args=["hello"])
        assert result.exit_code == 0
        assert "Hello, World!" in result.output
    

    Ce 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é.