Maison > développement back-end > Tutoriel Python > Comment se moquer du module de requêtes de Python pour des interactions API réalistes ?

Comment se moquer du module de requêtes de Python pour des interactions API réalistes ?

Barbara Streisand
Libérer: 2024-10-20 19:46:02
original
489 Les gens l'ont consulté

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

Module de requêtes Pythons moqueurs pour les interactions API simulées

Dans notre quête pour tester de manière exhaustive le code Python qui interagit avec les API, en se moquant efficacement du module de requêtes est crucial. Voici une approche étape par étape pour se moquer des appels request.get() avec des réponses personnalisées :

Étape 1 : se moquer du module Requests

Utilisation du package simulé de Python, nous définissons notre fonction personnalisée (mocked_requests_get) pour remplacer request.get(). Cette fonction renvoie des réponses fictives basées sur l'URL fournie. Dans notre exemple, différentes URL recevront des réponses spécifiques :

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'
Copier après la connexion

Étape 2 : se moquer dans la classe de test

Dans notre classe de test, nous appliquons la simulation à le module de requêtes utilisant unittest.mock.patch() :

@mock.patch('requests.get', side_effect=mocked_requests_get)
Copier après la connexion

Ce décorateur enveloppe notre méthode de test, garantissant que request.get est simulé avec notre fonction personnalisée.

Étape 3 : Appel de la vue et vérification des réponses

Nous invoquons la fonction de vue comme d'habitude et vérifions les réponses attendues. Notre fonction mock garantit que les réponses correspondent aux réponses personnalisées que nous avons définies précédemment :

res1 = requests.get('aurl')
assert res1 == 'a response'
res2 = request.get('burl')
assert res2 == 'b response'
res3 = request.get('curl')
assert res3 == 'c response'
Copier après la connexion

En suivant ces étapes, vous pouvez efficacement simuler le module de requêtes dans vos tests Python, vous permettant de simuler diverses réponses API et de manière approfondie testez le comportement de votre code dans différents scénarios.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal