問題タブ [pymox]
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 - このコードをpymoxで単体テストする方法は?
だから私はpymoxをインストールしました、そして私はこの方法をテストしたいと思います:
私はpymoxのドキュメントを読んでいますが、その方法がわかりません。サンプルコードを教えてください。
python - Mox (pymox) フレームワークの CreateMockAnything() の長所と短所
まず、質問の理由 - 公式の pymox ドキュメント: https://code.google.com/p/pymox/wiki/MoxDocumentation
MockAnythingセクションには、 「絶対に必要でない限り、これを使用しないでください!」という記述があります。. 面白いです どうしてですか?制限はありますか?個人的にはとても重宝しました。
次のような状況があります。クラスにモジュールへの参照があり、モジュールには、クラスで使用されるモジュールレベルの関数がたくさんあります。
これはモジュールなので、型ではないため、 CreateMock()でモックできません。したがって、この場合に最適なCreateMockAnything()を使用しました。モジュール関数を次のようにスタブできることはわかっています。
しかし、ここでは毎回 2 つのアクションを実行する必要があるため、この方法は好きではありません。クラス内のモジュールへの参照を持ち、それをCreateMockAnythingでモックする方が簡単できれいです。
関数名を誤って印刷すると、期待は失敗するだけなので (テストされているコードが正しいものを呼び出しているため)、これはポイントではありません...
StubOutWithMock の場合: テストされたメソッドで追加の db 関数呼び出しに気付かず、StubOutWithMockをスタブしない場合、実際のコードが呼び出され、db にゴミが残ります。したがって、ソリューションを保護するためのもう 1 つのポイント -特定のメソッドをスタブ化する代わりにCreateMockAnythingを使用すると、データベースへの依存関係を完全にカットできます。また、MockAnything モックによってスローされる予期しないメソッド呼び出しの例外も表示されます。
では、 CreateMockAnything()の使用を避ける理由は何ですか?
ありがとう、
python - python mox モック オブジェクトを使用する場合、(__eq__ のように) すべてが等しくならないようにする方法はありますか?
特定のクラスのいくつかのすべての mox Mock オブジェクトが、異なるオブジェクト (少なくとも を返します) であるにもかかわらず==
、意味で等しいように見えるという事実から派生したいくつかの問題が発生しています。その動作を防ぐ方法はありますか?__eq__
mock1 is mock2
False
以下のコード例では、すべてのモックが等しいと考えているため、カウントが間違っていることがわかります。