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