„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie kann ich das Anforderungsmodul von Python für realistische API-Interaktionen nachahmen?

Wie kann ich das Anforderungsmodul von Python für realistische API-Interaktionen nachahmen?

Veröffentlicht am 19.11.2024
Durchsuche:269

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

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.

Freigabeerklärung Dieser Artikel wird unter folgender Adresse abgedruckt: 1729424602 Bei Verstößen wenden Sie sich bitte an [email protected], um ihn zu löschen
Neuestes Tutorial Mehr>

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