問題タブ [powermockito]

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

junit - PowerMockito で静的メソッドを部分的にモックできない

Util クラスでtoBeMockedFunctionという名前の静的関数をモックします。このメソッドはpublic static void メソッドであるtoBeUnitTestedから呼び出されます。toBeMockedFunction で何もしたくない。部分的なモックとスタブ化の多くのアプローチ (そのような 2 のスニペットが投稿されています) を試しましたが、成功しませんでした。

私が間違っていることを提案してください。

以下は私のjunitクラスです

  1. アプローチ2

    /li>
0 投票する
1 に答える
49 参照

mockito - クラスオブジェクトをモックする方法またはプライベートジェネリックメソッドをモックする方法

以下にプライベートジェネリックメソッドがあります

上記のメソッドをモックする方法

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

junit - 静的メソッド呼び出しをどのようにバイパスしますか?

単体テストで干渉している次の行があります。

静的でない場合は、 OtherClass をモックしてから、次のようにします。

そして、呼び出された場合にエラーが発生するという事実は、powermockito を使用しようとする私の試みを無駄にします。

どうすればこれができるかわかりません。私がやりたいことは、この行をスキップして (これは if チェックです)、true が返されたかのように続行することだけです。これを行う最善の方法は何ですか?

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

spring - @Autowired サービスのコンストラクターのモック (テスト中のシステム)

対象のサービスのコンストラクターで作成されている jerseyclient をモックする必要があります。対象となるサービスは、Spring の @Autowired を介して注入された System Under Test です。

サービスのコンストラクタには client=client.create() メソッドを書いています。このコードを変更することはできません (これはコードの匂いですが)。ジャージークライアントをモックしたいのですが、サービスのコンストラクターにあります。私はこれを嘲笑することはできません

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

mocking - 抑制またはホワイトボックス化の問題

サーバーを利用するプライベートな静的最終のロガーがあります。Logger メソッドのデバッグを抑制したい、または変数とのすべての相互作用を抑制したいと考えています。LoggingClass でロガーを宣言します

デバッグ用の javadoc は次のとおりです。

私が試したテストクラスで:

問題 : toomanyMethodsException がスローされる

===========

問題: Whitebox がインスタンス フィールド LOGGER を見つけられないことをスローします。

どんな援助も感謝します

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

java - 「PowerMockito.whenNew()」を最初の出現のみに使用することは可能ですか?

JSON オブジェクトを構築しようとしており、結果をテストしたいと考えています。私はパブリックメソッドを呼び出しています。いくつかのプライベート メソッドがあり、再帰呼び出しが行われます。最初のどこかに私はこれを持っています:

これが私の「ルート」オブジェクトです。残念ながら、パラメーターなどとしては与えられませんが、示されているようにコンストラクターで作成されます。recursvie 呼び出し内で、このコンストラクターは構造を構築するためにさらに数回呼び出されます。必要なのは、テストでのアサーションのルート オブジェクトです。

だから私は何とかそれを手に入れようとし、ここでこのアプローチを試しました...次のコード:

これにより、アサーションの実行後にルート json オブジェクトを構築することができます。しかし、スタックオーバーフロー例外が発生します。なんで?再帰的に呼び出されたコンストラクターは、コンストラクターを呼び出す前にルート オブジェクトに渡されるようになったためです。

要するに、ここで必要なのは、「whenNew(JSONObject.class, times(1))」などと言いたいということです。そのため、最初のコンストラクター呼び出しのみがモックされ、以降はモックされなくなります。これは可能だと思いましたが、これを達成する方法が見つかりません:(

助けてくれてありがとう、みんな!

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

java - 静的メソッドと AEM モックのモック

AEM 5.6.1 のインスタンスにインストールする前に、maven を使用してコードをビルドおよびテストしています。私は、wcm.ioによる実装を使用した aem モックの恩恵を受ける単体テストと、powermockito を使用した静的メソッドのモックを必要とする他の単体テストを作成しました。

以下は、aem-context、sling モック、powermock の Maven 依存関係です。

私のクラスでは、aem コンテキストのルールを設定し、モック用のいくつかの静的クラスを準備しています。

コマンドラインから mvn test を実行すると、次の例外が発生しました。

テスト用に静的クラスを準備しない場合 (@PrepareForTest アノテーションを削除)、テストは問題なく実行されます。注釈を追加するとすぐに (空の場合でも)、問題が発生します。次の質問が残っています。

  1. これを機能させるために変更できる設定はありますか?
  2. aem コンテキストは静的モッキングでまったく機能しますか? (潜在的に別のライブラリと)