問題タブ [powermock]
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.
powermock - PowerMock を使用して非静的メソッドをモックする方法
テストメソッドの内部メソッド呼び出しをモックしようとしています
私のクラスは次のようになります
getStudent() メソッドの junit を作成するときに、PowerMock で行をモックする方法はありますか
または、DBに接続する実際のdao呼び出しの代わりに、junit実行中にAppクラスにモックdaoオブジェクトを使用させますか?
junit - プライベートセッターNullPointerのPowerMokitodoNothing()
問題:PowerMockito.doNothing()を実行しようとすると、Nullpointer例外がスローされます。
プライベートメソッドの値を返し、別のプライベートセッターメソッドに対して何もしないpartialMockObjectクラスを作成する必要があります。
doNothing()をsupress()に置き換えると機能させることができますが、これを理解したいと思います。
コード:
StackTrace:'java.lang.NullPointerException at org.powermock.api.mockito.internal.expectation.PowerMockitoStubberImpl.addAnswersForStubbing(PowerMockitoStubberImpl.java:68)at org.powermock.api.mockito.internal.expectation.PowerMockitoStubberImpl java:43)org.powermock.api.mockito.internal.expectation.PowerMockitoStubberImpl.when(PowerMockitoStubberImpl.java:104)
unit-testing - PowerMockを使用したTestNGDataProvider
ユニットテストにMockitoとTestNGを使用しています。PowerMockを試した静的メソッドをモックする必要があります。残念ながら、PowerMockと一緒にTestNGでDataProviderを使用することはできません。
質問:PowerMockの使用中にTestNGのDataProviderを使用するための回避策はありますか?
powermock - 拡張メソッドに関するPowerMokitoの問題
問題:拡張クラスからの戻りオブジェクトでメソッドをスタブ化できません。スタブ化しようとしているメソッドでnullポインターを取得するだけです。最初にオブジェクトに対してスパイを実行する必要がありますか?私もそれを試しましたが、うまくいきませんでした。
テストフレームワーク:PowerMockitoバージョン1.9PowerMockバージョン1.4.11EasyMockバージョン3.1
テストしようとしているコード行。
String expected = methodFromExtendedClass_GetObject().getStringValueFromReturnObject();
テストコード
PowerMockito.stub(MemberModifier.method(ExtendedClassA.class, "methodFromExtendedClass_GetObject()")).toReturn(new testObject());
PowerMockito.stub(MemberModifier.method(testObject.class, "getStringValueFromReturnObject")).toReturn(testString);
java - PowerMockとMockitoを使用してLoggerとLoggerFactoryをモックする
モックアウトしたい次のロガーがありますが、ログエントリが呼び出されていることを検証するために、コンテンツに対してではありません。
LoggerFactory.getLogger()に使用されるクラスをモックしたいのですが、その方法がわかりませんでした。これは私がこれまでに終わったものです:
私が知りたいのですが:
- スタティックをモックし
LoggerFactory.getLogger()
てどのクラスでも機能させることはできますか? - でしか走れないように見えるので
when(loggerMock.isDebugEnabled()).thenReturn(true);
、@Before
メソッドごとに特性を変えることはできないようです。これを回避する方法はありますか?
調査結果の編集:
私はこれをすでに試したと思いましたが、うまくいきませんでした:
しかし、それがうまくいったので、ありがとう。
しかし、私は無数のバリエーションを試しました:
loggerMockの動作を外部で変更することはできませんが、@Before
これはCoburturaでのみ発生します。Cloverを使用すると、カバレッジは100%を示しますが、どちらの方法でもまだ問題があります。
私はこの単純なクラスを持っています:
それから私はこのテストをします:
クローバーでは、if(logger.isDebugEnabled()){
ブロックを100%カバーしています。しかし、私が検証しようとするとloggerMock
:
インタラクションはゼロです。私も試しPowerMockito.verifyStatic()
ました; で@Before
しかしそれはまたゼロの相互作用を持っています。
これは、Coberturaがif(logger.isDebugEnabled()){
100%完全ではないことを示しているのは奇妙に思えますが、Cloverはそうしていますが、どちらも検証が失敗することに同意しています。
jsf - PowerMockを使用したJUnitテストのプロファイリング?
静的関数のモックを含む、モックを多用する非常に遅いJUnitテストがいくつかあります。単一のテストには20〜30秒かかり、「mvnテスト」全体には25分かかります。
時間が無駄になっている場所を分析したいのですが、プロファイリングの経験がほとんどありません。
依存するモックオブジェクトの初期化には時間がかかりすぎると思います。
2つの質問:
1)時間を無駄にしている方法で数字をすばやく取得するにはどうすればよいですか?複雑なパワーユーザーツールは必要ありません。数値を取得するための基本的なものだけです。(私たちが行うような嘲笑が悪であるという証拠)
2)どのような設計上の欠陥がそのような悪いタイミングを生み出す可能性があるかについてのアイデアはありますか?モックサービスを呼び出す必要があるJSFバッキングBeanをテストします。おそらく、バッキングBeanに入力検証またはリファクタリングされていないビジネスロジックがあるかもしれませんが、それを変更することはできません(plsはそれについてコメントしません;-))
ad 2)たとえば、1つのテストには@PrepareForTestを使用したテスト用に準備される約30(!)のクラスがあります。これは良いことではありませんが、理由を説明することはできません。
java - PowerMock EasyMock の基礎
これはおそらく PowerMock/EasyMock 101 の質問で、理由がわかりません。私はメソッドを持つクラスCを持っています
私の testOuter() メソッドのテストでは、testInner が適切なパラメーターで呼び出されるようにしたいと考えています。そのために、私は次のようなことをしています: [@RunWith(PowerMockRunner.class) @PrepareForTest(EmailUtil.class) クラスレベルで宣言]
しかし、次のようなエラーが発生しています:
実際のパラメーターを EasyMock.IsA(String.class) に置き換えましたが、まだうまくいきません。私はここで根本的にばかげたことをしていると確信しています。何か助けはありますか?
json - JsonpRequestBuilder を PowerMocked したことのある人はいますか?
私はする必要がPowerMock
ありJsonpRequestBuilder
ます。一連のコールバックをどのように処理すればよいですか?
前もって感謝します。
java - Antを使用してPowermockスイートを実行すると、ClassCastExceptionsが発生します
テストスーツは日食でうまく動作しています。ただし、ANTを使用してスーツを実行しようとすると、次のエラーがスローされます。
次のように、Webで多くの人が示唆しているように、クラスを無視しようとしました。
これでは問題は解決せず、次のエラーが発生し始めました。
前の例をしばらく試してみたところ、後で他のコードによって検出されるように問題を押しのけているように見え始めました。また、競合を解決できるようにjarをロードする方法を試してみましたが、これまでのところ運がありません。誰かが提供できるどんな助けも素晴らしいでしょう。
unit-testing - PowerMock / Mockito / EasyMock を使用して、モック化されたオブジェクトを依存性注入に使用するにはどうすればよいですか?
AuthenticationManager.authenticate(username,password)
テスト中の SomeService の someMethod で呼び出されるメソッドがあります。AuthenticationManager は SomeService に注入されます。
単体テストでは、認証メソッドが正しく機能したふりをする必要があります。私の場合は何もしないので、メソッド自体が期待どおりに動作するかどうかをテストできます (認証は、単体テストの原則に従って他の場所でテストされますが、認証の必要があります)そのメソッド内で呼び出される)だから私は考えています.によって呼び出されたときに戻り、他に何もしないSomeService
モックを使用する必要があります.AuthenticationManager
authenticate()
someMethod()
PowerMock (または PowerMock の一部である EasyMock / Mockito) でそれを行うにはどうすればよいですか?