「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > 現実的な API インタラクションのために Python のリクエスト モジュールをモックするにはどうすればよいですか?

現実的な API インタラクションのために Python のリクエスト モジュールをモックするにはどうすればよいですか?

2024 年 11 月 19 日に公開
ブラウズ:510

How to Mock Python\'s Requests Module for Realistic API Interactions?

シミュレートされた API インタラクション用の Python リクエスト モジュールのモック

API と対話する Python コードを包括的にテストし、リクエスト モジュールを効果的にモックするという探求重要です。ここでは、カスタム応答を使用して request.get() 呼び出しをモックするための段階的なアプローチを示します:

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

Python のモック パッケージを利用するカスタム関数 (mocked_requests_get) を定義して、requests.get() をオーバーライドします。この関数は、指定された URL に基づいて模擬応答を返します。この例では、さまざまな URL が特定の応答を受け取ります:

def mocked_requests_get(*args, **kwargs):
    if args[0] == 'aurl':
        return 'a response'
    elif args[0] == 'burl':
        return 'b response'
    elif args[0] == 'curl':
        return 'c response'

ステップ 2: テスト クラスでモックを作成する

テスト クラスでは、unittest.mock.patch を使用してリクエスト モジュールにモックを適用します。 ():

@mock.patch('requests.get', side_effect=mocked_requests_get)

このデコレータはテスト メソッドをラップし、requests.get がカスタム関数でモックされることを保証します。

ステップ 3: ビューの呼び出しと応答の確認

通常どおり view 関数を呼び出し、予想される応答を確認します。モック関数は、応答が前に定義したカスタム応答と一致することを保証します:

res1 = requests.get('aurl')
assert res1 == 'a response'
res2 = request.get('burl')
assert res2 == 'b response'
res3 = request.get('curl')
assert res3 == 'c response'

これらの手順に従うことで、Python テストでリクエスト モジュールを効果的にモックすることができ、さまざまな API 応答をシミュレートし、さまざまなシナリオでコードの動作を徹底的にテストできます。

リリースステートメント この記事は次の場所に転載されています: 1729424602 侵害がある場合は、[email protected] に連絡して削除してください。
最新のチュートリアル もっと>

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

Copyright© 2022 湘ICP备2022001581号-3