urllib のような Python モジュールをモック/スタブするにはどうしたらいいか?
2023-10-30 17:55:13
質問
urllib.urlopenを使用して外部サーバー上のページを照会する必要がある関数をテストする必要があります(それはまたurllib.urlencodeを使用します)。サーバーがダウンしている可能性があり、ページが変更される可能性があり、私はテストのためにそれを信頼することはできません。
urllib.urlopenが返すものを制御するための最良の方法は何ですか?
どのように解決するのですか?
もう一つの簡単な方法は、テストが urllib の
urlopen()
関数をオーバーライドすることです。 例えば、あなたのモジュールが
import urllib
def some_function_that_uses_urllib():
...
urllib.urlopen()
...
このようにテストを定義することができます。
import mymodule
def dummy_urlopen(url):
...
mymodule.urllib.urlopen = dummy_urlopen
そして、テストが
mymodule
,
dummy_urlopen()
が呼び出され、本当の
urlopen()
. Pythonのような動的言語では、テストのためにメソッドやクラスをスタブ化することがとても簡単にできます。
私のブログの記事をご覧ください http://softwarecorner.wordpress.com/ を参照してください。
関連
-
[解決済み] Pythonで現在時刻を取得する方法
-
[解決済み] Pythonで辞書に新しいキーを追加するにはどうすればよいですか?
-
[解決済み] Pythonで2つのリストを連結する方法は?
-
[解決済み] バイトを文字列に変換する
-
[解決済み] Pythonの辞書からキーを削除するにはどうしたらいいですか?
-
[解決済み] モジュールの関数名(文字列)を使って、モジュールの関数を呼び出す。
-
[解決済み] Pythonでシングルトンを作成する
-
[解決済み] モックとスタブの違いは何ですか?
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み] Celeryタスクのユニットテストはどのように行うのですか?
最新
-
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のキャッシュライブラリはありますか?
-
[解決済み] googletransがエラー 'NoneType' オブジェクトに 'group' 属性がない、と言って動かなくなった。
-
[解決済み] Django のテストデータベースをメモリ上だけで動作させるには?
-
[解決済み] Python 3でバイナリデータを標準出力に書き込むには?
-
[解決済み] Cythonのコードを含むPythonパッケージはどのように構成すればよいのでしょうか?
-
[解決済み] Pythonによる一対のクロスプロダクト [重複] (英語)
-
[解決済み] Pythonの検索パスを他のソースに展開する
-
[解決済み] Pythonでランダムなファイル名を生成する最良の方法
-
[解決済み] Python の sorted() はどのようなアルゴリズムを使っているのですか?重複