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:
Instale el marco
pytestejecutando el siguiente comando:pip install pytestCree un nuevo archivo llamado
conftest.pyen la carpetatestsde su aplicación Flask.En el archivo
conftest.py, importe los módulos necesarios:import pytest from my_app import create_appDefina un fixture llamado
appque cree y configure una instancia de la aplicación:@pytest.fixture() def app(): app = create_app() app.config.update({ "TESTING": True, }) yield appTenga en cuenta que si está utilizando un patrón de fábrica de aplicaciones, debe modificar el fixture en consecuencia.
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:
Probar una ruta:
def test_hello(client): response = client.get("/") assert response.status_code == 200 assert b"Hello, World!" in response.dataEsta 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!".
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.dataEsta 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".
Probar un comando:
def test_hello_command(runner): result = runner.invoke(args=["hello"]) assert result.exit_code == 0 assert "Hello, World!" in result.outputEsta 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.