requests ライブラリを使用する Python アプリのユニットテスト
2023-08-13 12:54:32
質問
私は、Kenneth Reitz の リクエストライブラリ を使用して REST 操作を行うアプリケーションを書いていますが、requests はモジュールレベルのメソッドを介してそのメソッドを提供するので、これらのアプリケーションをユニットテストする良い方法を見つけるのに苦労しています。
私が欲しいのは、2つのサイド間の会話を合成する能力です; 一連のリクエストのアサーションとレスポンスを提供します。
どのように解決するのですか?
ユーザーの利便性と使いやすさをターゲットにしながら、ライブラリがエンドユーザーのユニットテストについて空白のページを持つことは、実際には少し奇妙です。しかし、Dropbox による使いやすいライブラリがあり、意外なことにその名も
responses
. 以下はその
イントロポスト
. を採用しなかったと書かれています。
httpretty
を採用できず、その理由も書かず、似たようなAPIを持つライブラリを書いたと書いてあります。
import unittest
import requests
import responses
class TestCase(unittest.TestCase):
@responses.activate
def testExample(self):
responses.add(**{
'method' : responses.GET,
'url' : 'http://example.com/api/123',
'body' : '{"error": "reason"}',
'status' : 404,
'content_type' : 'application/json',
'adding_headers' : {'X-Foo': 'Bar'}
})
response = requests.get('http://example.com/api/123')
self.assertEqual({'error': 'reason'}, response.json())
self.assertEqual(404, response.status_code)
関連
-
[解決済み] urllib、urllib2、urllib3、requestsモジュールの違いは何ですか?
-
[解決済み] Pythonで現在時刻を取得する方法
-
[解決済み] Pythonで型をチェックする標準的な方法は何ですか?
-
[解決済み] Python 3 の "python -m SimpleHTTPServer" に相当するものは何ですか?
-
[解決済み] Pythonの関数が例外を投げるかどうかをテストするにはどうすればよいですか?
-
[解決済み] Python RequestsでJSONデータをPOSTする方法とは?
-
[解決済み] Pythonの構文に新しいステートメントを追加することはできますか?
-
[解決済み] googletransがエラー 'NoneType' オブジェクトに 'group' 属性がない、と言って動かなくなった。
-
[解決済み] データフレームをソートした後にインデックスを更新する
-
[解決済み] 単純な文字列からtimedeltaオブジェクトを作成する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] PythonでSVGからPNGに変換する
-
[解決済み] Spyderを仮想環境で動作させるには?
-
[解決済み] 辞書のキーと値を交換するにはどうすればよいですか?
-
[解決済み] Pythonのインスタンス変数とクラス変数
-
[解決済み] pandasのタイムゾーンに対応したDateTimeIndexを、特定のタイムゾーンに対応したナイーブなタイムスタンプに変換する。
-
[解決済み] Ctrl-CでPythonスクリプトを終了できない
-
[解決済み] Python Empty Generator 関数
-
[解決済み] Pythonでファイルの読み込みと上書きをする
-
[解決済み] 単純な文字列からtimedeltaオブジェクトを作成する方法
-
[解決済み] Python の sorted() はどのようなアルゴリズムを使っているのですか?重複