テスト用に Python のリクエスト モジュールを効果的にモックする方法は?

Mary-Kate Olsen
リリース: 2024-10-20 19:44:30
オリジナル
954 人が閲覧しました

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

Python のモック パッケージを使用してリクエストをモックする

Python のリクエスト モジュールを効果的にモックするには、次の手順に従います。

ステップ 1: リクエスト モジュールをモックする

テスト クラスのコンテキストでリクエスト モジュールをモックするには、次の構文を使用します:

<code class="python">import mock
@mock.patch('requests.get')
def test_function(self, mockedRequests):</code>
ログイン後にコピー

テスト関数内:

>
  • 各 URL に必要な戻り値を指定して、「aurl」、「burl」、および「curl」呼び出しを mockedRequests オブジェクトに割り当てます。

例:

<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>
ログイン後にコピー

ステップ 2: View 関数を呼び出す

テスト ケースで、myview 関数を呼び出して HTTP リクエストを実行します。

ステップ 3: 応答の検証

応答オブジェクトに期待値 ('a 応答'、'b 応答'、'c 応答') が含まれていることをアサートします。

例:

<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>
ログイン後にコピー

コード例:

<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>
ログイン後にコピー

以上がテスト用に Python のリクエスト モジュールを効果的にモックする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!