Wie kann man das Anforderungsmodul von Python zum Testen effektiv nachahmen?

Mary-Kate Olsen
Freigeben: 2024-10-20 19:44:30
Original
954 Leute haben es durchsucht

How to Effectively Mock Python's Requests Module for Testing?

Anfragen mit dem Mock-Paket von Python verspotten

Um das Anforderungsmodul von Python effektiv zu verspotten, befolgen Sie diese Schritte:

Schritt 1: Verspotten Sie das Anforderungsmodul

Um das Anforderungsmodul im Kontext Ihrer Testklasse zu verspotten, verwenden Sie die folgende Syntax:

<code class="python">import mock
@mock.patch('requests.get')
def test_function(self, mockedRequests):</code>
Nach dem Login kopieren

Innerhalb der Testfunktion:

  • Weisen Sie die Aufrufe „aurl“, „burl“ und „curl“ dem Objekt „mockedRequests“ zu und geben Sie dabei die gewünschten Rückgabewerte für jede URL an.

Beispiel:

<code class="python">mockedRequests.get('aurl').return_value = 'a response'
mockedRequests.get('burl').return_value = 'b response'
mockedRequests.get('curl').return_value = 'c response'</code>
Nach dem Login kopieren

Schritt 2: Aufrufen der View-Funktion

Rufen Sie in Ihrem Testfall die myview-Funktion auf, um die HTTP-Anfragen auszuführen.

Schritt 3: Antwort überprüfen

Stellen Sie sicher, dass die Antwortobjekte die erwarteten Werte enthalten („a-Antwort“, „b-Antwort“, „c-Antwort“).

Beispiel:

<code class="python">res1 = myview(request)
self.assertIn('a response', res1)
res2 = myview(request)
self.assertIn('b response', res2)
res3 = myview(request)
self.assertIn('c response', res3)</code>
Nach dem Login kopieren

Beispielcode:

<code class="python">import unittest
import mock
from views import myview

# Mock the requests module
@mock.patch('requests.get')
def test_myview(self, mockedRequests):
    # Define return values for URL calls
    mockedRequests.get('aurl').return_value = 'a response'
    mockedRequests.get('burl').return_value = 'b response'
    mockedRequests.get('curl').return_value = 'c response'

    # Call the view function
    res1 = myview(request)
    res2 = myview(request)
    res3 = myview(request)

    # Verify response
    self.assertIn('a response', res1)
    self.assertIn('b response', res2)
    self.assertIn('c response', res3)

if __name__ == '__main__':
    unittest.main()</code>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann man das Anforderungsmodul von Python zum Testen effektiv nachahmen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!