Bagaimana untuk Mengejek Modul Permintaan Python untuk Ujian dengan Berkesan?

Mary-Kate Olsen
Lepaskan: 2024-10-20 19:44:30
asal
954 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!