問題タブ [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 モックは、その属性のいずれかが使用されたときに辞書を返します
たとえば、リクエスト オブジェクトを再利用する Django のメソッドがあります。
unittest を作成するとき、偽のリクエスト オブジェクトを作成する必要があります。これにはGET
属性があり、辞書が含まれている必要があります。{'sessionid': 'blah'}
モックパッケージを使用してそれを行うにはどうすればよいですか?
python - モック オブジェクトを sqlalchemy コレクションに追加すると例外が発生する
1 対多の関係を持つ SQLAlchemy モデル クラスの単体テストを作成していますが、モック オブジェクトをコレクションに追加できません。
テスト中のクラス:
テストコード:
モック オブジェクトを追加すると、例外が発生します。
コレクションを単純なリストのように動作させながら、モックを追加してリレーションシップを含むクラスを単体テストする方法はありますか?
私はモック 1.0.1 と sqlalchemy 0.8.2 を使用しています。
unit-testing - python mock patch : インスタンスのメソッドを呼び出す?
Python 2.7では、この機能があります
モックとパッチで、トークンがSlackerクラスで使用されていることを確認できます
post_message で使用されている文字列を確認するにはどうすればよいですか?
私は試してみます
しかし、私は得る
python - mock.patch() は、関数呼び出し内でいくつかのレベルを呼び出したクラスにパッチを適用していません
タスクがあります
Worker
それ自体は別のモジュールの別のクラスであり、Driver
そのようなクラスを使用します。
もう一度Driver
、別のモジュールの別のクラスです
だから私が何かをしようとすると
task にはまだDriver
クラス インスタンスがありますが、 mock はありません。それは間違っている。それを修正する方法は?
UPD1 :
異なるモジュールDriver
にWorker
住み、Worker
インポートしますDriver
python - モックされていないクラスで autospec を使用して classmethod にパッチを適用する方法は?
Python クラスの 1 つのクラスメソッドが、特定の引数セットを使用して別のクラスメソッドを呼び出すことを主張したいと思います。モック化されたクラスメソッドを「仕様化」したいので、間違った数の引数で呼び出されたかどうかを検出します。
を使用してクラスメソッドにパッチを適用するpatch.object(.., autospec=True, ..)
と、クラスメソッドが に置き換えられ、NonCallableMagicMock
呼び出そうとするとエラーが発生します。
出力を生成します:
_internal_classmethod
属するクラスがモックされていない場合、仕様化されたモックを取得するにはどうすればよいですか?
python - Django テスト - すべてのテストでオブジェクトにパッチを適用する
MockMixin
テスト用に何らかのものを作成する必要があります。外部ソースを呼び出すすべてのモックを含める必要があります。たとえば、管理パネルでモデルを保存するたびに、いくつかのリモート URL を呼び出します。それを嘲笑して、そのように使用するのは良いことです:
したがって、機能テストなどでモデルを管理者に保存するたびに、リモート URL を呼び出す代わりに、このモックが適用されます。
それは実際に可能ですか?私は 1 つの特定のテストでそれを行うことができますが、それは問題ではありません。しかし、私はそれをよく使うので、いくつかのグローバル モックがあるとより便利です。