問題タブ [jmock]
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 - JMockの予期しない呼び出し
以下では、TestWrapperという名前のクラスをモックし、それに「許可」期待値を設定しようとしています。ただし、期待値を設定するとエラーが発生します。easymockを使用して期待を設定するだけの場合、これは発生しないようです
TestWrapper.class
アサーションエラー。
java - オブジェクトのハムクレストマッチャー...パラメータ
クラスのメソッドを取得しました
カスタムのハムクレストマッチャーがあります
メソッド1に渡されたオブジェクトに一致する期待値の記述方法
実際の呼び出しは
渡されたオブジェクトと期待されるオブジェクトは同じですが、実際に渡されたパラメーターはsomeObject1ではなく、SomeObject [] {someObject1}(1つのオブジェクトのみを持つ配列-someObject1)であるため、SomeObjectMatcherは失敗しますか?チェーンに新しいマッチャーを追加する方法はありますか?
java - JUnitとJMockを使用して抽象クラスの保護されたメソッドをテストする方法
私にはそのような状況があります-私はインターフェース(たとえばMyInterface
)と単純な部分実装(AbstractMyInterface
)を持っています。後者は、私がテストしたいいくつかの保護されたメソッドを追加します。
AbstractMyInterface
現在、保護されたメソッドをパブリックとして拡張およびエクスポートするモックオブジェクトを手作業で作成しています。これを行う簡単な方法はありますか?たとえば、JMock +スクリプトを使用しますか?
jmock - カスタム コードで jmock オブジェクトを拡張できますか
単体テストで使用している約 10 個のメソッドのコールバック インターフェイスがあります。テスト中に設定された XML 文字列の値をテストする必要があります。
私はすでに他のテストケースの jmock に取り組んでいます。
これを行うための好ましい「jmock の方法」は、カスタムorg.hamcrest.Matcherオブジェクトを記述して、返された文字列の値をテストすることです。
しかし、これは難しそうです。もっと簡単な方法はありますか?
- jmock マッチャーが String 値を囲む String[] に渡す簡単な方法はありますか? 次に、jmock 句の外側の文字列を調べることができます
- モック オブジェクトを拡張する簡単な方法があるので、独自のメソッドを実装します。私は何かを望んでいました
もちろん、独自のスタブ オブジェクトを定義することもできますが、怠け者です...
java - JMock Blitzerはどこにありますか?
http://www.jmock.org/threading-blitzer.htmlで説明されていますが、2.5.1jarファイルには表示されません。
junit - JMock は AssertionError をトリガーします: 呼び出しは 1 回予期され、呼び出されませんでしたが、呼び出されました
私はJavaでプログラミングするのはかなり初めてですが、ユニットテストから直接始めようとしたため、JMockも使用しました。動作するいくつかのテストケース (JMock を使用) を既に実装していますが、これは実行できません。
私がしたこと: モック オブジェクトを作成するテスト クラスを作成し、(oneOf を使用して) 呼び出しを期待しています。単体テストを実行すると、失敗したと表示されます (ただし、will(returnValue(x))
.
次の面白い/奇妙なことは、oneOf を「never」に変更すると、単体テストは成功しますが、例外がスローされます。
期待: 期待されていない、決して呼び出されていない:blockingQueue.take(); これより前に何が起こったかを返します: 何もありません!
ここにコード:
そして、私がテストしている実行可能ファイル:
unit-testing - サブクラスでのスーパークラス呼び出しのモック/テスト..それは可能ですか?
サブクラスButtonClickerでスーパーコールをモックするソリューションを探しています。
jmock - jmock で複雑なオブジェクトを検証する
複雑な Bean を格納するだけのカスタム jmock アクションをコーディングし、後で従来の JUnit アサーションを使用してそれを検証します。
モックされたインターフェースの関数に渡されたオブジェクトで呼び出されたいくつかのゲッターから返された値をアサートするJMockの期待に簡単な手段はありますか?
java - 文字列のハムクレストマッチャー。文字列にはランダムな値が含まれています。
次の文字列をハムクレストマッチャーのいずれかと一致させる方法はありますか?
この文字列はメソッドに渡されます。私はそれに合わせてJMockの期待を使用します。
問題:「72e3a446-2fed-4bda-ac35-34e95ab3dc32」の部分はランダムに生成されたUUIDであり、テストされたメソッド内で生成されます。次のようなものに一致するハムクレストストリングマッチャーはありますか
"{\"messageType\":\"identify\",\"_id\":\"
期待される文字列が、その後に任意の文字列があることで始まり、で終わることと一致する必要があります。",\"address\":\"192.168.0.0\",\"port\":7070}"
編集:解決策
java - JMock モック オブジェクトがモックしているクラスを特定するにはどうすればよいですか?
次のような模擬セットアップがあるとします。
そして後で、モックオブジェクトを調べて、モックしているクラスを見つけたいと思います:
これを行う方法について、JMock (2.5.1) javadocs で明らかなことは何も見当たりませんでした。mock
メソッドの署名は次のとおりです。
以前のバージョン (私は 1.2.0 を見ました) では、Mock
オブジェクトを直接作成し、そのメソッドの 1 つが
私が達成しようとしているのは、単体テスト内で DI を使用するための単体テスト フレームワークです。(私は Guice 3.0 を使用しています。) テストで DI を使用することは、私が使用しているアプリケーション サーバー/プラットフォームの制限です。私がテストしているオブジェクトは、独自の を持つ multiton のサブクラスですInjector
。移入しようとしています。
すべてのテストで AbstractModule の匿名インスタンスを作成する必要がないようにしたいので、次のようなものを構築しようとしています (これは 1.2 で機能していたようです)。
欠けている唯一のものは、この質問に対する答え (もしあれば) です。
受け入れられた回答への応答
このユースケースのために私が最終的に作成したものは次のとおりです。