Pruebas de aplicaciones Flask

Beginner

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

Introducción

En este laboratorio, aprenderá a probar aplicaciones Flask utilizando el marco pytest. La prueba es una parte importante del proceso de desarrollo de software, ya que ayuda a garantizar la corrección y la confiabilidad de su aplicación. Flask proporciona utilidades para la prueba, lo que facilita la escritura de pruebas para diferentes partes de su aplicación.

Nota: Debe crear el archivo de código por sí mismo y ejecutarlo en el entorno. Puede previsualizar el estado del servicio Flask en Web 5000.

Configurar el entorno de prueba

Antes de poder comenzar a escribir pruebas para su aplicación Flask, debe configurar el entorno de prueba. Aquí están los pasos para hacerlo:

  1. Instale el marco pytest ejecutando el siguiente comando:

    pip install pytest
  2. Cree un nuevo archivo llamado conftest.py en la carpeta tests de su aplicación Flask.

  3. En el archivo conftest.py, importe los módulos necesarios:

    import pytest
    from my_app import create_app
  4. Defina un fixture llamado app que cree y configure una instancia de la aplicación:

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

    Tenga en cuenta que si está utilizando un patrón de fábrica de aplicaciones, debe modificar el fixture en consecuencia.

  5. Defina fixtures para el cliente de prueba y el ejecutor de CLI:

    @pytest.fixture()
    def client(app):
        return app.test_client()
    
    @pytest.fixture()
    def runner(app):
        return app.test_cli_runner()

Escribir pruebas

Ahora que ha configurado el entorno de prueba, puede comenzar a escribir pruebas para su aplicación Flask. Aquí hay algunos ejemplos de pruebas comunes que puede desear escribir:

  1. Probar una ruta:

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

    Esta prueba envía una solicitud GET a la ruta raíz ("/") y comprueba que el código de estado de la respuesta sea 200 y que los datos de la respuesta contengan la cadena "Hello, World!".

  2. Probar una solicitud 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

    Esta prueba envía una solicitud POST a la ruta de inicio de sesión ("/login") con datos del formulario que contienen un nombre de usuario y una contraseña. Comprueba que el código de estado de la respuesta sea 200 y que los datos de la respuesta contengan la cadena "Logged in successfully".

  3. Probar un comando:

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

    Esta prueba invoca un comando llamado "hello" y comprueba que el comando salga con un código de 0 y que la salida contenga la cadena "Hello, World!".

Ejecutar las pruebas

Para ejecutar las pruebas, vaya a la carpeta raíz de su aplicación Flask en la terminal y ejecute el siguiente comando:

pytest

Este comando descubrirá y ejecutará todas las pruebas en la carpeta tests. Debería ver los resultados de las pruebas en la salida de la terminal.

Resumen

En este laboratorio, aprendió a probar aplicaciones Flask utilizando el marco pytest. Configuró el entorno de prueba, escribió pruebas para diferentes partes de su aplicación y ejecutó las pruebas para verificar la corrección de su código. La prueba es una parte esencial del proceso de desarrollo de software, y escribir pruebas para su aplicación Flask ayudará a garantizar su confiabilidad y estabilidad.