問題タブ [jmockit]

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 投票する
4 に答える
11968 参照

java - JMockitを使用してDateクラスのデフォルトコンストラクターをモックする方法は?

のデフォルトコンストラクターをモックしたいjava.util.dateので、作成された時刻を表すオブジェクトを作成しませんDateが、常に同じDateオブジェクトを作成します(私の例では2010年12月31日以下)。JMockitとでこれを試してみましJUnitたが、以下のテストを実行すると、出力は常にThu Jan 01 01:00:00 CET 1970です。それで、私のモックの何が問題になっていDate()ますか?

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

java - モックするメソッドに複数の引数がある場合にJmockを使用してカスタム制約を作成する方法

テストを簡単に進めることができるように、多くのクラスをモックする必要がある大規模なコードベースの単体テストケースを作成するのが難しいことに直面しています。JmockのAPIドキュメントで、使用できるcustomeconstraintにメソッドが含まれていることがわかりました。

引数が期待を満たしている場合、これはtrueを返します。

しかし、私のメソッドは複数の引数で呼び出されます。引数を評価し、メソッドが呼び出された引数が正しいことを確認するにはどうすればよいですか。前もって感謝します。

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

junit - TestNG といくつかのモッキング フレームワークを使用して HTTPSession/FlexSession をモックする方法

Flex をフロントエンドとして、Tomcat 6 で実行する Web アプリケーションを開発しています。TestNG でバックエンドをテストしています。現在、Java バックエンドで次のメソッドをテストしようとしています。

このメソッドは、サーブレット コンテナーで実行する場合にのみ存在する FlexContext へのアクセスを必要とします (Flex を知らなくても気にしないでください。一般的には Java のモッキングに関する質問です)。そうしないと、呼び出し時に Nullpointer 例外が発生しsession.setAttribute()ます。残念ながら、FlexContext を外部から設定することはできません。これにより、テストから設定できるようになります。メソッド内で取得されるだけです。

メソッドまたはメソッドを含むクラスを変更せずに、モッキングフレームワークでこのメソッドをテストする最良の方法は何ですか? そして、このユースケースで最も簡単なフレームワークはどれですか (アプリでモックする必要があるものは他にほとんどなく、非常にシンプルです)。

申し訳ありませんが、それらすべてを自分で試して、これを機能させる方法を確認できましたが、いくつかの良いアドバイスでクイックスタートできることを願っています!

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

java - JMockit:モックオブジェクトをインスタンス化する必要がある場合のヌルポインターエラー?

JMockitについての私の理解では、モック化されたオブジェクトのすべてのインスタンスをモックに置き換えます (特に指定しない限り)。

したがって、モックしようとしているオブジェクトをインスタンス化した後、 NPEを取得することに困惑しています。

このテストの目的は、NPE の原因となっているオブジェクトを調査することではありませんが、入力を検証するためにいくつかのデータベース アクションを実行するため、テストを実行するためにオブジェクトをモックする必要があります。

テスト中の私のコードは次のようなものです(作業コードであるため、パスタをコピーしませんが、それでも問題を強調する必要があります):

私のテスト方法:

テストを完了できるように、この NPE の問題を解決するのを手伝ってくれる人はいますか?

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

eclipse - JMockit で部分モックをデバッグする

JMockit 0.999.4 と JDK6 を使用して、部分的にモックされたクラスにデバッグできますか?

次のテストを検討してください。

SampleClass の各 sysout 行にブレークポイントを配置し、Eclipse で「ステップ オーバー」をデバッグすると、SampleClass メソッドに入ります。

静的初期化子が staticInt を値 10 に設定するのを防ぐ次のことを検討してください。

ただし、このコードは SampleClass のメソッドにデバッグしません。

はい、-javaagent プロパティを試しました。

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

java - JUnit テスト内で JMockit を使用して静的メソッドを複数回モックする

現在JMockitでモックしている静的メソッドを持つクラスがあります。次のように見えるとします。

Foo の静的メソッドを呼び出す別のクラス (MyClass と呼びましょう) があります。このクラスのテストケースを書こうとしています。JMockit を使用した私の JUnit テストは、次のようになります。

これはうまく機能し、テストが実行されると、MyClass のインスタンスは Foo.getValue() を呼び出すときに Foo.FooValue.X の列挙値を正しく取得します。

今、列挙内のすべての値を反復処理し、テストを繰り返し実行しようとしています。上記のテスト コードを for ループに入れて、モック化された静的メソッドの結果を各列挙値に設定しようとしても、うまくいきません。Foo.getValue() のモック バージョンは常に Foo.FooValue.X を返し、列挙を反復処理するときに他の値を返すことはありません。

単一の JUnit テスト内で静的メソッドを複数回モックするにはどうすればよいですか? 私はこのようなことをしたいです(しかし、明らかにうまくいきません):

何か案は?

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

unit-testing - JMockit で以前に定義された期待値を削除する

テスト対象のクラスの通常の実行に期待される値を返すように、テストクラスNonStrictExcpection()@Before/メソッドでJMockit を使用してモックしているオブジェクトがあります。setUp()

これは、このコードの非通常動作をテストする単一のテストを除いて、すべてのテスト メソッドで問題ありません。

テスト メソッドで新しい期待値を作成しようとしましたが、これは setUp メソッドの期待値をオーバーライドすると信じていましたが、setUp メソッドの期待値が新しい期待値を抑制していることがわかりました。

setUp の期待値を削除すると、テスト メソッドは期待どおりに動作します (ただし、他のすべてのテストは当然失敗します)。

最小量のコードで各テストの期待値を正しく定義できるように、テスト クラスをどのようにコーディングすればよいですか? (期待コードを各テストメソッドにコピー/貼り付けできることは知っていますが、回避できる場合はそうしたくありません)。

私のテスト コードは次のようになります (注、これは一種の疑似コードであり、コンパイルされませんが、アイデアは得られます)。

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

java - 継承された最終メソッドを jmockit に置き換える

jMockIt を使用して、継承された最終メソッドを独自の実装に置き換える方法を見つけようとしています。

私が次のものを持っているとしましょう:

たとえば、常に 10 を返すように getX() を再定義する方法はありますか?

私はこれに沿って何かをやってみました:

これにより、jMockIt が int getX() に一致するメソッドを見つけられないという実行時例外が発生します。

このスレッドに出くわしました: http://groups.google.com/group/jmockit-users/browse_thread/thread/27a282ff2bd4ad96

しかし、そこで提供されている解決策はよくわかりません。

助けてくれる人はいますか?

0 投票する
5 に答える
656 参照

java - JRE 1.4 で現在時刻をモックする

私は現在、JRE 1.4 (Java ランタイム環境) のみを使用するように制限されており、現在の時刻を計算するクラスがあります。クラスを単体テストしようとしていますが、私が遭遇したすべてのモッキング ツールは JRE1.4 でサポートされていない注釈を必要とするため、かなり難しいようです。

JRE 1.4 に適したバージョンの mockito を使用してみましたが、静的クラスをモックアウトすることはできません。Jmockitには、ダウンロードできる非常に簡単なソリューションがありますが、JmockitのJRE1.4対応バージョンはないようです

JRE1.5以降を使用していた場合、これを回避する方法は2つあります(現在の時刻を呼び出すメソッドをモックアウトするか、現在のシステム時刻をモックアウトするだけです)が、残念ながらそうではありません。

これに対する唯一の解決策は、現在のシステム時刻を +/- 日/月/年でメソッドに渡すことです。

ただし、可能であれば、JRE 1.4 環境でモックの方法で実行したいと考えています。

ありがとう

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

java - テスト対象のクラスのプライベート メソッドへの呼び出しを置き換える方法

さて、私は今、レガシーコードをテストしています。そして、私はこのテストに合格するところまで来ていますが、コメントのある行で行き詰っています。ここにスニペットがあります

一方、 のすべての値resultはモックアップされています。