「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Python 単体テストでリクエストとレスポンスを模擬するにはどうすればよいですか?

Python 単体テストでリクエストとレスポンスを模擬するにはどうすればよいですか?

2024 年 11 月 23 日に公開
ブラウズ:844

How Can We Mock Requests and Responses in Python Unit Testing?

リクエストとレスポンスをモックする方法

はじめに

Python の単体テストにはモックが含まれることがよくあります現実世界のシナリオをシミュレートするための外部依存関係。モックを使用すると、これらの依存関係の動作を制御できるようになり、テストの安定性と予測可能性が向上します。この記事では、Python のリクエスト モジュールとその応答をモックして、効果的な単体テストを容易にする方法を説明します。

ステップ 1: リクエスト モジュールのモック

リクエスト モジュールをモックするには、標準ライブラリからのモック モジュール:

import mock

リクエスト モジュールのモック オブジェクトを作成します。テスト メソッドのセットアップ フェーズ:

mockedRequests = mock.Mock()

get() メソッドが呼び出されたときに、さまざまな URL に対して特定の応答を返すようにモックされたオブジェクトを構成します:

mockedRequests.get.side_effect = [
    # First URL: Return 'a response'
    mock.Mock(status_code=200, text='a response'),
    # Second URL: Return 'b response'
    mock.Mock(status_code=200, text='b response'),
    # Third URL: Return 'c response'
    mock.Mock(status_code=200, text='c response')
]

ステップ 2: ビューの呼び出し

リクエスト モジュールをモックして、リクエストを行うビュー内の関数を呼び出します:

res1 = mockedRequests.get('aurl')
res2 = mockedRequests.get('burl')
res3 = mockedRequests.get('curl')

ステップ 3: 応答の検証

リクエスト モジュールはモック化されているため、応答が期待値であるかどうかを簡単にチェックできます。 :

self.assertEqual(res1.text, 'a response')
self.assertEqual(res2.text, 'b response')
self.assertEqual(res3.text, 'c response')
リリースステートメント この記事は次の場所に転載されています: 1729424657 権利侵害がある場合は、[email protected] に連絡して削除してください。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3