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'
É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)
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'
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!