Python-Anforderungsmodul für simulierte API-Interaktionen verspotten
In unserem Bestreben, Python-Code, der mit APIs interagiert, umfassend zu testen und so das Anforderungsmodul effektiv zu verspotten ist entscheidend. Hier ist eine Schritt-für-Schritt-Anleitung zum Verspotten von request.get()-Aufrufen mit benutzerdefinierten Antworten:
Schritt 1: Verspotten des Requests-Moduls
Verwendung des Mock-Pakets von Python, Wir definieren unsere benutzerdefinierte Funktion (mocked_requests_get), um request.get() zu überschreiben. Diese Funktion gibt Scheinantworten basierend auf der angegebenen URL zurück. In unserem Beispiel erhalten verschiedene URLs spezifische Antworten:
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'
Schritt 2: Mocking in der Testklasse
In unserer Testklasse wenden wir das Mock auf das Requests-Modul an, indem wir unittest.mock.patch verwenden ():
@mock.patch('requests.get', side_effect=mocked_requests_get)
Dieser Dekorator umschließt unsere Testmethode und stellt sicher, dass „requests.get“ mit unserer benutzerdefinierten Funktion verspottet wird.
Schritt 3: Aufrufen der Ansicht und Überprüfen der Antworten
Wir rufen die Ansichtsfunktion wie gewohnt auf und überprüfen die erwarteten Antworten. Unsere Mock-Funktion garantiert, dass die Antworten mit den benutzerdefinierten Antworten übereinstimmen, die wir zuvor definiert haben:
res1 = requests.get('aurl') assert res1 == 'a response' res2 = request.get('burl') assert res2 == 'b response' res3 = request.get('curl') assert res3 == 'c response'
Indem Sie diese Schritte befolgen, können Sie das Anforderungsmodul in Ihren Python-Tests effektiv verspotten, sodass Sie verschiedene API-Antworten simulieren und das Verhalten Ihres Codes in verschiedenen Szenarien gründlich testen können.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3