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

Barbara Streisand
リリース: 2024-10-20 19:46:02
オリジナル
411 人が閲覧しました

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

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

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

ステップ 1: Requests モジュールをモックする

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: ビューの呼び出しと応答の確認

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

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 レスポンスをシミュレートし、徹底的にシミュレートすることができます。さまざまなシナリオでコードの動作をテストします。

以上が現実的な API インタラクションのために Python のリクエスト モジュールをモックするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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