問題タブ [easymock]
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.
java - リクエスト中の簡単なモック動作
EasyMock を使用してオブジェクト全体の動作をモックすることは可能でしょうか?
これの目的は、たとえば JUnit テスト @BeforeClass でモックのインスタンスを作成し、それをいくつかの @Test メソッドで使用することです。
ご意見をお寄せいただきありがとうございます。
よろしく、P.
unit-testing - 新しいオブジェクトの作成をモックする
EasyMocks を使用しています。
メソッド内には、作成された新しいオブジェクトがあります。そして、そのオブジェクトに対して、マップを返すメソッドが呼び出されます。以下のように
その時にカスタムマップを返したい。どうすればいいのですか。
ありがとう。
java - EasyMock は、Expected Method に対して Null を返します
EasyMock が予想される (定義された) メソッド呼び出しに対して null を返すという問題があります。
モックされたオブジェクトの作成
単体テストでセットアップをモックします。
processData メソッドは単に呼び出します
これは、モックが構築されているインターフェイスです。
何が問題を引き起こしているのか、私はかなり混乱しています。「obj」は単体テストで定義したオブジェクトと同じであることを確認しました。私はまた、嘲笑した他の方法でこの問題を経験していません(私が認識しています)。
渡されたオブジェクトに問題がある可能性がありますか?
前もって感謝します。ここで他にどのような情報が役立つかはわかりません。
編集:これはテストクラスです(そして、私の誤解がどこから始まったのかが判明しました)
java - すべてのノードがモックの場合、EasyMock を使用して「呼び出しのツリー」をテストする方法は?
TopHandler
、 、 の3 つのタイプがあるHandlerA
としHandlerB
ます。それぞれにvoid handle(Something)
方法があります。
のインスタンスは と のインスタンスへのTopHandler
参照を保持し、とを呼び出します。HandlerA
HandlerB
handle()
HandlerA
HandlerB
私のテストでは、3 つのオブジェクトすべてをモックしてから、topHandler での呼び出しが他の 2 つのオブジェクトでの呼び出しを引き起こすことを確認します。
それを指定するにはどうすればよいですか?EasyMock を使用すると、モックの予想される動作を指定できることはわかっていますが、ここでどの機能を使用すればよいかは明確ではありませんでした。
java - テストでインスタンス化できないオブジェクトをモックするにはどうすればよいですか?
EasyMock を使用して、テストでオブジェクトをモックしています。しかし、コード内の別の場所で作成されたオブジェクトをモックするにはどうすればよいでしょうか? 次の疑似コードを見てください。WebService#getPersonById をモックしたいのですが、どうすればよいですか?
java - PowerMock を使用した静的メソッドと動的メソッドの両方のモック
私たちが持っているとしましょう
私がやりたいことは、単体テストでそれをモックすることです。クラスの静的メソッドと動的メソッドの両方をモックする必要がありますFoo
。モッキングgetInstance()
は簡単です
問題は、メソッドをモックbar
する方法です。
replace(method(...)).with(method(...))
動的メソッド用に設計されていないため、前のトリックは機能しません。
すでにモックされたクラスの上にモックしようとしても機能しません。
上記のコードは をスローしAssertionError: Unexpected method call bar
ます。
では、どうすれば両方を行うことができますか?現実の世界では、静的メソッド内からは利用できないデータが必要なので、モッキングを.bar(...)
入れたくありません。getMockInstance
getMockInstance
java - EasyMock モックを取得して空のリストを複数回返す方法
初めて返されたリストに要素が追加されている場合でも、EasyMock モックが空のリストを複数回期待できるようにしたいと考えています。
これは可能ですか?期待どおりに作成された空のリストは、リプレイ全体にわたって持続するため、呼び出し間で追加された要素が保持されます。
これは、私が回避しようとしていることを示すコード例です。
java - ネイティブ メソッドを呼び出すコードのテスト
私はこのようなクラスを持っています:
getBar()は JNI で実装され、クラスはfinalであることに注意してください。toString()メソッドをテストする JUnit テストを作成したいと考えています。このためには、getBar()メソッドをモックしてから、元のtoString()メソッドを実行して出力を確認する必要があります。
最初はこれは不可能だろうと思っていましたが、機能リストに従って最終クラスとネイティブ メソッドのテストをサポートするPowerMockを見つけました。しかし、これまでのところ、私はそれで成功していません。私が管理した最善のことは、完全なクラスをモックすることでしたが、テストでは、あまり意味のない実際のメソッドではなく、モックされたtoString()メソッドをテストしました。
では、PowerMock を使用して上記のtoString()メソッドをテストするにはどうすればよいでしょうか? 私は Mockito でPowerMockを使用することを好みますが、これが不可能な場合は、代わりにEasyMockを使用しても問題ありません。
java - Ivy を使用したクラスパスの問題
Ivy を使用して依存関係を管理していますが、easymock で問題が発生しています
私のivy.xmlファイルには次のものがあります:
次に、他のライブラリの依存関係に従います。他のライブラリが別のバージョンの easymock を使用している場合に、少なくとも私のライブラリが正しいバージョンを取得することを期待しています。
しかし、私が解決した後、Eclipseでは、easymockの2つのバージョン(1.2と2.5)があり、1.2が最初にリストされていることがわかります。
単体テストを実行すると、org.easymock.internal.IMocksBehavior を受け取る org.easymock.internal.RecordState のコンストラクターで java.lang.NoSuchMethodError が発生します。
これは、古いバージョンの EasyMock を使用していることを示唆しています。
どうすればこの問題を回避できますか?
java - EasyMock モック オブジェクトを取得して例外をスローする
EasyMock を使用して、多くの共同作業クラスの単体テストを作成中です。これらのクラスの 1 つ ( と呼びましょうFoo
) は、リモート サーバーへのネットワーク接続を開き、そのサーバーの XML 応答を解析して、残りのクラスが使用できるものにします。
現在、私のテストでは、すべてがうまく機能せず、リモート サーバーが稼働しており、期待どおりに XML を返すシナリオのみが含まれています。ただし、リモート サーバーがダウンした場合や、によって がスローされる原因となるその他の問題が発生した場合に何が起こるかをシミュレートできるように、モックを作成できれば幸いです。Foo
IOException
Foo
EasyMock API を見てみましたが、モックに例外をスローするように要求するメソッドのように見えるものは何も見当たりません。
ベースのテストは絶対に必要というわけではありませんが、EasyMock で可能かどうか興味があり、この方法で のパブリック コントラクトException
をテストすると便利だと思います。Foo
以前に EasyMock でこのようなことをした人はいますか?
参考文献