問題タブ [python-mock]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - テスト後に Python でモックを破棄する
次のようなテストがいくつかあるとしましょう。
そして、MyLib に次のようなものがあるとしましょう:
my_first_test では、my_lib.my_function をモックし、関数が実行されると True を返します。この例では、my_lib.my_function を呼び出す同じライブラリの別の関数である run_my_function() を呼び出しています。しかし、 my_second_test が実行されると、モックされた関数が呼び出されるのではなく、実際の関数が呼び出されます。したがって、my_first_test を実行した後、おそらく TeaDown() の実行中に、何らかの方法でモックを破棄する必要があると思います。どうすればそのモックを破壊できますか?
申し訳ありませんが、元の質問を編集して詳細を追加しました。
python - 一時ファイルシステムを使用してPythonでos.walkをモックする方法は?
os.walk を使用するコードをテストしようとしています。os.walk が返すサンプル (空の) ファイルとディレクトリを格納できる一時的なインメモリ ファイルシステムを作成したいと考えています。これにより、再帰をシミュレートするために os.walk 呼び出しをモックする複雑さが解消されます。
具体的には、テストしたいコードは次のとおりです。
これはpythonで可能ですか?
python - Python での厳密なモック
Pythonに厳密なモックに相当するものはありますか? モック化されたメソッド (この例では action.step2()) の意図しない呼び出しを報告するメカニズム。これは GoogleMock フレームワークの場合とまったく同じです。
python - Pythonでモックを使用して複数の応答をモックする
モックを使用して書いたRestクライアントの単体テストを書こうとしています
このクラスがFoo
2 つのメソッドを持っているとしましょう..get_foo()
とget_bar()
これが私のテストクラスです
私は基本的にこのチュートリアルを使用してここに到達しました: http://seminar.io/2013/09/27/testing-your-rest-client-in-python/
しかし今、バーもテストしたい..このアプローチでバーをテストするにはどうすればよいですか? ありがとう
python - Django モデルでチェーンされたメソッドをモックする方法
Pythonモックライブラリを使用してDjangoモデルのメソッドをモックするために、次のようなことをしようとしています:
上記のコードは問題なく動作しますが、コードを次のように変更すると、単一の MagicMock オブジェクトが返され始めます。
Django モデルでメソッド呼び出しをチェーンしている場合でも、これを正しく実行できる方法はありますか?
python - Pythonでクラスオブジェクトメソッドの戻りをモックする
モック クラスの 1 つでテスト値を返すメソッドをモックしたいと思います。私が直面している問題は、テスト値を返すことではなく、モックされたメソッドが MagicMock 型のオブジェクトを返すことです。
コードはかなり不自然ですが、問題を示しています。
SuT (sut.py):
テスト (mocking.py):
python - Python モックの複数の戻り値
私は pythons mock.patch を使用しており、呼び出しごとに戻り値を変更したいと考えています。注意点は次のとおりです。パッチを適用する関数には入力がないため、入力に基づいて戻り値を変更することはできません。
参照用の私のコードは次のとおりです。
私のテストコード:
io.prompt
「入力」のプラットフォームに依存しない (python 2 および 3) バージョンです。したがって、最終的には、ユーザーの入力をモックアウトしようとしています。戻り値にリストを使用しようとしましたが、うまくいきません。
戻り値が無効な場合、ここで無限ループが発生することがわかります。したがって、テストが実際に終了するように、最終的に戻り値を変更する方法が必要です。
(この質問に答える別の方法は、単体テストでユーザー入力を模倣する方法を説明することです)
主に入力を変更する能力がないため、この質問の重複ではありません。
この質問に対する回答のコメントの 1 つは同じ行に沿っていますが、回答/コメントは提供されていません。
python - try/except ブロック内から呼び出される 2 つの関数をモックする方法は?
次のような関数 foo があります。
次のようなことを行って、Python モック ライブラリでテストしようとしています。
ただし、このようにすると、それらのいずれにもパッチが適用されず、代わりに適切なresponse
オブジェクトが取得されStringIO
ます。StringIO
パッチを省略した場合MagicMock
、(オブジェクトではなく) 期待どおりのオブジェクトが得られresponse
ます。これを正しく機能させるにはどうすればよいですか?