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 : Mocking dans la classe de test
Dans notre classe de test, nous appliquons la simulation au module de requêtes à l'aide de 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 fictive 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 tester en profondeur le comportement de votre code dans différents scénarios.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3