問題タブ [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 - 同じmockControl内で通常のモックとNiceMockを使用する
同じmockControlオブジェクト内でniceMockと「通常の」モックを使用することは可能ですか?
現在、モックの1つをniceに設定しようとすると
コントロール全体をniceにリセットしているようです
だから私は同じコントロールで異なるモックタイプを持つ方法が欲しいです。
ありがとうございました
java - Java単体テストモックHttpClientとwebdav
こんにちは、ディレクトリの作成など、webdav 関連の操作を行うためのクラスがあります。実装については、以下を参照してください (createDir メソッド)。問題は、おそらく EasyMock または同様のライブラリを使用して、うまくテストする方法です。何か案は?ありがとう!
java - EasyMock:セット内の要素数を期待する
Easymockのセット内の要素の数をどのように確認しますか?私がテストしているクラスは、n個の要素を持つセットを渡すメソッドを呼び出す必要があります。現在、リストの任意のオブジェクトと一致しています。
セット内の要素の数を指定したいもの:
または、さらに良いことに、セット内の要素を一致させます。
自分のマッチャーをロールバックする必要がありますか?組み込みのマッチャーはありますか?または、誰かが共有したいsetOfNObject
またはマッチャーを持っていますか?setEq
easymock - Easymock.and(int、int)の使用法は何ですか?
EasyMockには事前定義された引数マッチャーがありますand(X first, X second)
文書によると:
1番目と2番目の両方で使用されたマッチャーが一致する場合に一致します。すべてのプリミティブ型とオブジェクトで使用できます。
しかし、数値タイプとマッチャーのユースケースが何であるかはわかりません。たとえば、and(int first, int second)
firstがsecondに等しくない場合は意味がありませんが、整数がfirstとsecondの両方に等しく、firstとsecondが異なる値になるにはどうすればよいでしょうか。
groovy - Groovyでモックメソッドが「任意」の回数呼び出されることを期待する方法
GroovyのMockForオブジェクトで、EasyMockのように何度でも呼び出すことができる予想される呼び出しを定義する正式な方法を見つけることができません。anyTimes()
'1..999'の範囲を定義でき、必要なものをカバーできることはわかっていますが、このような "anyTimes()"メソッドが利用できるのではないかと思います。これは、で参照が見つからなかったためです。グーグル。
ありがとう
java - EasyMock は Collection 型のパラメータでメソッドを呼び出すことを想定しています
私は問題に遭遇しました:
そして、リプレイすると、このDAOメソッドを呼び出して、
予期しない呼び出しの someObj1 は、予期される呼び出しの someObj1 と等しく、要素は同じ順序になっています。
最初に私はこれをそのように解決しました:
しかし、サービス クラスが正確に 2 つの要素を含むコレクションで dao.save を呼び出しているかどうかをテストする必要があるため、isA(Collecion.class)
動作しなくなりました。
この問題を解決するには?あなたより。
easymock - easymock は net/sf/cglib/proxy/Enhancer に依存していますか?
初めて使用するために、easymock に関するチュートリアルを完了しようとしています。 http://www.vogella.de/articles/EasyMock/article.html
私が使用している - Java 開発者向けの Eclipse IDE (ビルド ID: 20100218-1602)
- Junit 4 プラグイン
- easymock 3.0
以下で説明するようにプロジェクトを作成し、JUNIT テストとして実行すると、エラーが発生します。
このエラーは何ですか?どうすれば修正できますか? ライン上で発生します。
java.lang.NoClassDefFoundError: net/sf/cglib/proxy/Enhancer at org.easymock.internal.ClassExtensionHelper.getControl(ClassExtensionHelper.java:57) at org.easymock.EasyMock.getControl(EasyMock.java:2068) at org. easymock.EasyMock.replay(EasyMock.java:1970) で収入.IncomeCalculatorTest.testCalc1(IncomeCalculatorTest.java:33)
sun.reflect.NativeMethodAccessorImpl.invoke0 (ネイティブ メソッド) で sun.reflect.NativeMethodAccessorImpl.invoke (不明なソース) で sun.reflect.DelegatingMethodAccessorImpl.invoke (不明なソース) で java.lang.reflect.Method.invoke (不明なソース) org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) で org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) で org.junit.runners.model. org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) の FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java: 28) org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) で org.junit.runners.BlockJUnit4ClassRunner.org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:46) の runChild(BlockJUnit4ClassRunner.java:73) org.junit.runners.ParentRunner.runChildren(ParentRunner.java:180) の runChild(BlockJUnit4ClassRunner.java:180)
org.junit.runners.ParentRunner.access$000(ParentRunner.java:41)
で org.junit.runners.ParentRunner$1.evaluate(ParentRunner.java:173) で
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) で org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) で org.junit.runners.ParentRunner org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:46) の .run(ParentRunner.java:220) org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution) .java:38) org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) で org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) で) org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197) で org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) でjava.lang.ClassNotFoundException: net.sf.java.net.URLClassLoader$1.run の cglib.proxy.Enhancer (未知のソース) java.security.AccessController.doPrivileged (ネイティブ メソッド) の java.net.URLClassLoader.findClass (未知のソース) java.lang.ClassLoader.loadClass の(不明なソース) で sun.misc.Launcher$AppClassLoader.loadClass(不明なソース) で java.lang.ClassLoader.loadClass(不明なソース) ... 28 詳細
java - EasyMockを使用してjniを使用するオブジェクトをモックする
したがって、テスト対象のクラスには、このように勇敢に見えるコードがあります
私の意図は、レポートの構成を保護されたメソッドに抽出し、それをオーバーライドしてモックオブジェクトを使用し、それをテストして、someMethodが正しいデータで呼び出されたことを確認することでした。
ここまでは順調ですね。しかし、Reportは私の管理下にはなく、さらに悪いことに、実行時にJNIを使用してライブラリをロードします。
レポートレポートを実行する場合=EasyMock.createMock(Report.class)
次に、EasyMockはリフレクションを使用してクラスメンバーを見つけようとしますが、これによりJNIライブラリをロードしようとして失敗します(JNIライブラリはUNIXでのみ使用可能です)。
2つのことを検討しています。a)2つの実装を備えたReportWrapperインターフェイスを導入します。1つは実際のレポート(基本的にはプロキシ)への呼び出しを委任し、もう1つは基本的にモックオブジェクトを使用します。またはb)someMethodを呼び出す代わりに、保護されたメソッドを呼び出します。これにより、テストサブクラスでオーバーライドできるsomeMethodが呼び出されます。
いずれにせよ、それは厄介なようです。より良い方法はありますか?
easymock - setReturnValueのeasymock置換
やあ、
easymockの新しいバージョンは、setReturnValue
からのメソッドを非推奨にしましたorg.easymock.MockControl
呼び出しのデフォルトの戻り値を設定する方法はありますか、それともexpect(...)
代わりに使用する必要がありますか?
また、デフォルト値(任意の回数)を返したいこのメソッドを除いて、他のメソッドは厳密である必要があることにも言及したいと思います(順序と呼び出し数が重要です)
java - .andReturn で新しいオブジェクトを設定しても、EasyMock の Expect メソッドは常に null を返す
ソースコードは次のとおりです。
そして、私はテストケースを次のように書きました:
ただし、テストを実行すると、常にNullPointerException
行 1 が表示されます。
誰かがこれを解決する方法について私を助けてもらえますか?
ありがとう。