問題タブ [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 投票する
2 に答える
214 参照

java - powermockまたはモックツールを使用してスーパークラスのJavaメソッドをモックする方法は?

スーパークラス

実装

メソッドをテストする必要があり、getMyData()メソッドをモック/抑制したいcreateQuery()ので、テスト環境で失敗します。

ありがとう!

0 投票する
4 に答える
38461 参照

java - パラメータでメソッドを呼び出すと、PowerMockitoモック静的メソッドが失敗します

いくつかの静的メソッドを持つ電卓クラスを使用するクラスをテストしようとしています。同様の方法で別のクラスをうまくモックしましたが、これはより頑固であることが証明されています。

モックされたメソッドに渡された引数の 1 つでメソッド呼び出しが含まれている場合、静的メソッドはモックされていないようです (そしてテストが中断されます)。内部呼び出しを削除することは、明らかにオプションではありません。ここで私が見逃している明らかなものはありますか?

これは、同じように動作する圧縮バージョンです...

そして、ここでテスト...

質問について混乱があるように思われるので、より「現実的な」例を考案しました。これにより、あるレベルの間接性が追加されるため、モックされたメソッドを直接テストしているようには見えません。SmallCalculator クラスは変更されていません。

そして、これが新しいテストクラスです...

0 投票する
6 に答える
5709 参照

java - クラスを初期化せずにメソッドをテストする

クラスを初期化せずにメソッドをテストする方法があるかどうか疑問に思っています。methodToTest 私が尋ねている理由は、コンストラクターで渡されるオブジェクトがたくさんあるためです。これは、徹底的なチェックからオブジェクト属性を使用していないように見える一方で、多くのモックスタブを意味します。それ以外の場合は、メソッドが静的に変換される可能性があるのは私のコードではありません。

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

android - PowerMockito.whenNew が Android の Intent クラスで機能しない

モック Intent オブジェクトを使用しようとしていますが、PowerMockito から whenNew を使用すると、コンストラクターをモックできません。可能なすべての引数の組み合わせを試しましたが、うまくいきません。

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

testing - PowerMockito.whenNew が機能しない

アップデート。最後に実際の例を確認してください。


私はクラスを持っています:

そしてテスト:

ただし、実際のクラスを作成して出力します。

クラスXYZ{}

私は何を間違っていますか?

PS Maven デプス:


作業例:

0 投票する
3 に答える
5080 参照

java - powermockito を使用して URL クラスをモックする際の問題

この方法の利点の詳細には立ち入らずに、次のテスト コードが機能しない理由を理解するための助けが必要です! これは、この時点でより多くの学習演習でした..

PowerMockito を使用して URL クラスのモックを作成し、その動作を定義しようとしています。コードは次のとおりです。

次の例外スタックがスローされます。特に、このテストのリンク 39 は、次の場所にあります。エラーをスローします。URL は最終クラスであり、私は Powermockito を使用していることに注意してください。

0 投票する
0 に答える
437 参照

unit-testing - グルーヴィーなテストファイルをモックしているときに、mockito と powermockito が AbstractMethodError をスローする

最終クラス ( java.net.URL) をモックし、それを非常に単純な Wrapper クラス ClassToTest.groovy で使用しようとしています。テスター クラスはさらに下に示され、ClassToTestTester.groovy です。

ご覧のとおり、ここで達成しようとしているのは、(非常に) 単純なテスト ワークフローを実行することだけです。

  1. モックの定義 (mockURL)
  2. メソッドスタブの定義getUserInfo
  3. メソッドのテスト:testClass.returnUserInfo()

残念ながら、テスト中のクラス (テスト中のシステムまたは SUT とも呼ばれます):ClassToTestでは、実行時に url.getUserInfo()空の文字列が返されます。ここで起こっていることは、@Testメソッドでコンストラクターとして渡された mockURL オブジェクトが永続化されていないことです。代わりに、クラスローダは URL の新しいインスタンスを SUT にロードします。どちらも得られないので、これがそうであると信じさせられNullPointerExceptionます!私が得るのは、userInfoそうでなければ「apil.tamang」と言うべき空の文字列だけです。

また、.java 拡張子で記述された同じファイルは期待どおりに機能します。つまり、同じClassToTestTesterパスを実行しています。

ここで何が間違っていますか?私が見逃している露骨なエラーはありますか??

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

java - PowerMockito モック静的メソッドで引数を使用すると、引数の型が一致しないのはなぜですか?

PowerMockito を使用して静的クラスへの呼び出しをモックしていますが、メソッドにはオブジェクトの配列である引数があります。したがって、呼び出しは次のようになります。

しかし、PowerMockito を次のようにモックしようとすると、次のようになります。

これにより、Eclipseで警告が表示されます。

タイプ MyObject[] の引数は、タイプ PowerMockito からの varargs メソッド when(Class, String, Object...) の呼び出しのために明示的に Object[] にキャストする必要があります。別の方法として、varargs 呼び出しのために Object にキャストすることもできますが、次のように Object にキャストすると、次のようになります。

このメソッドの実行時にその文字列が返されていません。これは、オブジェクト型パラメーターが原因でメソッドが認識されないためであると想定しています。

オブジェクトとしてキャストせずに非プリミティブを渡す方法、またはメソッドをキャストで認識させる方法についてのアイデアはありますか?

0 投票する
0 に答える
293 参照

java - モック化されたサービスを動的に作成されたクラスに注入する方法

その@Spyため、-> (メソッドからオブジェクトへ) のリファクタリング パターンに関連して、新しいオブジェクトの作成を実行する がありますが、新しく作成されたインスタンスには、依存するサービスが注入されていません。

コードは明らかに、このフォーラムに投稿する私の所有物ではありませんが、疑似ロジックでは、以下のメッセージを伝えようとします:

ただし、TestObjectこのサービスは Abstract 親クラスから継承され、 で直接使用するとtestObjnullspecialistServiceMockではなく、正常に動作します。

が新しいクラスにtestObjヒットし、そのメソッドを呼び出すと、いくつかのことを行う必要がありますが、null です。RefactoredMethodToObject()invoke()specialistServiceMockspecialistServiceMock

これは Mockito の能力を超えているように見えますが、PowerMock も手元にあります。

つまりspecialistServiceMock、動的に作成された のインスタンスで実行するために必要なアクションをモックする必要がありますRefactoredMethodToObject()

どんなアイデアでも大歓迎です。さらに情報が必要な場合はお知らせください。ありがとう