Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Mengejek Modul Permintaan Python untuk Ujian dengan Berkesan?

Bagaimana untuk Mengejek Modul Permintaan Python untuk Ujian dengan Berkesan?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-20 19:44:301023semak imbas

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

Permintaan Mengejek dengan Pakej Olok-olok Python

Untuk mengejek modul permintaan Python dengan berkesan, ikut langkah berikut:

Langkah 1: Mock the Requests Module

Untuk mengejek modul permintaan dalam konteks kelas ujian anda, gunakan sintaks berikut:

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

Di dalam fungsi ujian:

  • Tetapkan panggilan 'aurl', 'burl' dan 'curl' kepada objek mockedRequests, menyatakan nilai pulangan yang diingini untuk setiap URL.

Contoh:

<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>

Langkah 2: Panggil Fungsi Paparan

Dalam kes ujian anda, hubungi fungsi myview untuk melaksanakan permintaan HTTP.

Langkah 3: Sahkan Respons

Tegaskan bahawa objek respons mengandungi nilai yang dijangkakan ('a response', 'b response', 'c response').

Contoh:

<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>

Contoh Kod:

<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>

Atas ialah kandungan terperinci Bagaimana untuk Mengejek Modul Permintaan Python untuk Ujian dengan Berkesan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn