問題タブ [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.

0 投票する
1 に答える
3371 参照

python - Python で連鎖呼び出しをモックする

ライブラリを使用unittestして次のクラスをテストしようとしています。mock

のインスタンスを作成するときに、インスタンスConnectionの戻り値に応じて、が期待する値であるかどうかをどのようにテストできますか?Sessionself.some_info

モックライブラリを利用したい そのドキュメントには、連鎖呼び出しをモックする例があります ( http://www.voidspace.org.uk/python/mock/examples.html#mocking-chained-calls )が、どのようにできるかはあまり明確ではありません私の問題に合わせてください。

このSession.load(cookie)メソッドは、インスタンスにいくつかの属性を設定しSessionます。Cookie のすべての値に対して、この値をテスト用に固定したいと思います。

0 投票する
1 に答える
545 参照

python - ログ メッセージと unittests と呼ばれるメソッドを確認するにはどうすればよいですか?

私は Django 1.3 を使用しており、ロギング システムで出力と対話の数を確認する必要があります。ロギングには Django-Sentry を使用していますが、通常の Python ロガーと同じように機能しているようです。

私はモックに python-mockito を使用しています。可能であれば、さまざまなメソッドが呼び出された回数とそれらが返すメッセージを確認したいと思います。

私は次のようなチェックを達成しようとしています:

また、パラメーターを確認できると便利です。

models.py:

tests.py:

出力をキャッチする方法について何か提案はありますか?

0 投票する
4 に答える
45880 参照

python - メソッドが複数回呼び出される Python Mock オブジェクト

別のクラス (CUT の init メソッドに渡されるインスタンス) に依存するクラスをテストしています。Python Mock ライブラリを使用して、このクラスをモックアウトしたいと考えています。

私が持っているのは次のようなものです:

これは問題ありませんが、「methodfromdepclass」はパラメーター化されたメソッドであるため、methodfromdepclass に渡される引数に応じて異なる値を返す単一のモック オブジェクトを作成したいと考えています。

このパラメーター化された動作が必要な理由は、異なる値 (mockobj から返される値によって生成される値) を含む ClassUnderTest の複数のインスタンスを作成したいからです。

ちょっと私が考えていること(これはもちろんうまくいきません):

この「ifcallwith」のようなセマンティクスを実現するにはどうすればよいですか?

0 投票する
1 に答える
13736 参照

python - Pythonでファイルオブジェクトまたはイテラブルをモックする

モックライブラリを使用して、open()によって返されるオブジェクトを iters するコードをモックおよびテストするには、どの方法が適切ですか?

whitelist_data.py:

これが私がそれをテストしようとする方法です。

の結果python tests.pyは次のとおりです。

UPD: Adam のおかげで、mock library( pip install -e hg+https://code.google.com/p/mock#egg=mock) を再インストールし、tests.py を更新しました。魅力のように機能します。

0 投票する
3 に答える
22665 参照

python - モックされた file.read() の実際の戻り値を取得する

私はpython-mockを使用して、ファイルを開く呼び出しをモックしています。この方法で偽のデータを渡すことができるようにしたいので、read()テストでファイルシステムにヒットすることなく、テストデータを使用するだけでなく、それが呼び出されていることを確認できます。

ここに私がこれまでに持っているものがあります:

これの出力は、私が想定しているようなものではあり<mock.Mock object at 0x8f4aaec>ません。'test'このモックを作成する際に何が間違っていますか?

編集:

次のようになります。

この:

異なるオブジェクトです。モックをコンテキスト マネージャーとして使用すると、 newMockが返されますが、それを直接呼び出すと、 で定義したものが返されmock_open.return_valueます。何か案は?

0 投票する
2 に答える
257 参照

python - テスト中のモジュールにインポートされるモック メソッド

このモジュールをテストしたいとします。

このメソッドは、システム コール (特定のネットワーク インターフェイスを想定) を行うため、環境に依存しているため、テスト マシンで呼び出すことはできません。

ib_output の処理が期待どおりに機能するかどうかをチェックする、そのメソッドの単体テストを書きたいと思います。したがって、モックosutils.callを作成して、テストデータを返すだけにします。それを行うための好ましい方法は何ですか?モッキングや (モンキー) パッチを適用する必要がありますか?

テスト例:

0 投票する
1 に答える
809 参照

python - Mockフレームワークを使用して、モックされたメソッドの出力をどのように変更しますか?

私は次のようなモジュールを持っています:

セッションとは、DBと通信するSQLAlchemyセッションハンドラーを指します。テストの目的で、Sessionオブジェクト(または単にSessionオブジェクト?)のクエリメソッドをモックできる必要がありinit_systemます。これにより、実際にデータベースと対話せずにテストできます。これを行うためにMockフレームワークを使用するにはどうすればよいですか?

本当に私を困惑させるのは、メソッドをモックした場合、query()渡されるクラスに依存するすべてのメソッドの出力を変更するにはどうすればよいですquery()か?

私は私が次の線に沿って何かをすることができることを望んでいます:

ただし、正しくmy_mock_object模倣するために何をする必要があるのか​​わかりません。イテレータを返すメソッドquery()を実装する必要があると思います。all()そして、返されたイテレータに入れるモックオブジェクトをさらに作成して、適切な属性の値があることを確認できることを知っています。例:

そしてもちろん、MagicMockinit_system関数で使用できるオブジェクトのさまざまなバージョンの反復可能オブジェクトを作成できます(例:for value in var_one行内)。

しかし、モックされたすべてのオブジェクトをつなぎ合わせる方法がわからないのでSession.query、クラスが渡されることを考慮してメソッドをモックアウトすることができます。これは、返される反復可能オブジェクトの内容に影響します。

ありがとう!

0 投票する
2 に答える
46862 参照

python - Python クラスにモック パッチを適用し、インスタンス化ごとに新しいモック オブジェクトを取得するにはどうすればよいですか?

OK、これはマニュアルに記載されており、おそらくand/orと関係がある
ことは知っていますが、単純で直接的な例が非常に役立ちます。 side_effectreturn_value

私は持っている:

UUTここで、クラスの単体テストを行い、 ClassToPatch. クラスUUTが正確に 2 つのClassToPatchオブジェクトをインスタンス化することがわかっているので、インスタンス化ごとに Mock フレームワークが新しい Mock オブジェクトを返すようにして、後でそれぞれの呼び出しを個別にアサートできるようにします。

@patchテストケースでデコレータを使用してこれを達成するにはどうすればよいですか? つまり、次のコード サンプルを修正するにはどうすればよいでしょうか。

0 投票する
2 に答える
2634 参照

python - メソッドでPythonビルドをモックする方法

私はpythonメソッドで次のことを行います:

  1. os.listdir(/test) を使用して、ディレクトリの下にあるファイルを一覧表示します
  2. 正規表現は、ディレクトリの下のファイルのいくつかに一致し、ファイルをリストに入れます
  3. リスト内のファイルからコンテンツを読み取り、いくつかの集計を行います。

明らかに、私のケースでテストする興味深い部分は 2 と 3 だけなので、1 は間違いなくモックしたいものです。setUp()とtearDown()で/testフォルダの下にパッチファイルの作成/削除を始めました。しかし、同僚は、I/O をまとめて行うのは得策ではないと私に言いました。

私のユニットで os.listdir() でビルドをモックする最良の方法は何ですか? または代替手段は何ですか?

次のようなことを達成するためにできることはありますか:

0 投票する
2 に答える
5063 参照

python - モック ライブラリを使用して Python クラスにパッチを適用する方法

テスト用のクラスにパッチを適用するのに問題があります。Scrapy に属するもの ( HtmlXpathSelectorクラス) にパッチを適用しようとしています。

ここにいくつかのコードがあります:

結果は次のとおりです。

この例は、モック ライブラリ チュートリアルのものとほぼ同じです。なぜそれが機能しないのですか?