"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo burlarse del módulo de solicitudes de Python para lograr interacciones API realistas?

¿Cómo burlarse del módulo de solicitudes de Python para lograr interacciones API realistas?

Publicado el 2024-11-19
Navegar:106

How to Mock Python\'s Requests Module for Realistic API Interactions?

Mocking Pythons request Module for Simulated API Interactions

En nuestra búsqueda para probar exhaustivamente el código Python que interactúa con las API, burlándonos efectivamente del módulo de solicitudes es crucial. Aquí hay un enfoque paso a paso para burlarse de las llamadas de request.get() con respuestas personalizadas:

Paso 1: Burlarse del módulo de solicitudes

Utilizando el paquete simulado de Python, definimos nuestra función personalizada (mocked_requests_get) para anular request.get(). Esta función devuelve respuestas simuladas basadas en la URL proporcionada. En nuestro ejemplo, diferentes URL recibirán respuestas específicas:

def mocked_requests_get(*args, **kwargs):
    if args[0] == 'aurl':
        return 'a response'
    elif args[0] == 'burl':
        return 'b response'
    elif args[0] == 'curl':
        return 'c response'

Paso 2: Burlarse en la clase de prueba

En nuestra clase de prueba, aplicamos la simulación al módulo de solicitudes usando unittest.mock.patch ():

@mock.patch('requests.get', side_effect=mocked_requests_get)

Este decorador envuelve nuestro método de prueba, asegurando que request.get sea simulado con nuestra función personalizada.

Paso 3: Llamar a la vista y verificar las respuestas

Invocamos la función de vista como de costumbre y verificamos las respuestas esperadas. Nuestra función simulada garantiza que las respuestas coincidan con las respuestas personalizadas que definimos anteriormente:

res1 = requests.get('aurl')
assert res1 == 'a response'
res2 = request.get('burl')
assert res2 == 'b response'
res3 = request.get('curl')
assert res3 == 'c response'

Si sigue estos pasos, puede simular de manera efectiva el módulo de solicitudes en sus pruebas de Python, lo que le permitirá simular varias respuestas de API y probar exhaustivamente el comportamiento de su código en diferentes escenarios.

Declaración de liberación Este artículo se reimprime en: 1729424602 Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3