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: Verspottung in der Testklasse
In unserer Testklasse wenden wir die Verspottung an das Modul „requests“ mit unittest.mock.patch():
@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'
Durch Befolgen dieser Schritte können Sie das Anforderungsmodul in Ihren Python-Tests effektiv verspotten und so verschiedene API-Antworten gründlich simulieren Testen Sie das Verhalten Ihres Codes in verschiedenen Szenarien.
Das obige ist der detaillierte Inhalt vonWie kann ich das Anforderungsmodul von Python für realistische API-Interaktionen nachahmen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!