問題タブ [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.
java - PowerMockito でプライベート静的メソッドをモックするにはどうすればよいですか?
これは、ここにあるのと同じ質問です。残念ながら、受け入れられた答えは私にとってはうまくいきません。テストする必要があるプライベート メソッドを含む静的ユーティリティ クラスがあります。このようなメソッドをモックすると、次のことがわかります。
getSomethingMethod()
が実際に呼び出されているため、null ポインター例外が発生しています。デバッグすると、テストしようとしているメソッドを実行したときに呼び出されていないことがわかりますが、モックをセットアップしているときに実行されています。 このサイトに基づいて、この形式でモックを作成すると、それが起こるはずです。
それで、私はこのようにモックを設定しようとします:
getSomethingMethod()
ただし、可視性をパブリックに変更する必要があるという Eclipse からのエラーが表示されます。PowerMockito を使用する大きな利点の 1 つは、プライベート メソッドをモックできることではないでしょうか。このメソッドをモックする必要がありprivate static
ます (セットアップ中に実際にメソッドを呼び出す必要はありません)。
java - 別のメソッドから呼び出されるメソッドをモックする方法
私がいるシナリオ
foo に入る文字列引数 a と b を取得したいと思います。テストクラスは以下のようになります
最後の sysout は null<>null を出力します。texts 配列が更新されないのはなぜですか?
java - Mockito - PowerMock. メソッド呼び出しのモック
次のメソッドのテストを書きたいと思います。このメソッドでは、最初にモックしたいメソッド呼び出しがさらに 2 つ行われます。最初は getterToMock() で、2 つ目はstatic
メソッド呼び出しstatic
です。Mockito ではメソッドをモックすることは不可能であるため、PowerMock を使用しましたが、私はまだ取得中ですNullPointerException
私のテストは次のようになります
問題は、 @Resource アノテーション付きプロパティを正しくモックしていないことだと思います
編集実際のコードを追加する
Utils クラスの getUsername
テスト
例外スタック トレース
java - PowerMockito コンストラクター呼び出しで例外をスローする方法
リフレクションを使用して次のプライベート メソッド (getPrintWriter) をテストしています。
FileNotFoundException をスローする PrintWriter のコンストラクターをシミュレートしたいと考えています。
PrintWriter コンストラクターが FileNotFoundException をスローしたことをシミュレートしてから、null が返されたことをアサートしたいと思います。次の例外をスローするコメント行でマークしましたが、それを正しくシミュレートする方法がわかりません。
junit - PowerMockito と Mockito の競合
レガシー システムの単体テスト (junit を使用) を作成する必要があります。テストする必要があるメソッドは静的メソッドを使用しており、それが呼び出されたかどうかを確認する必要があります。したがって、PowerMockito を使用する必要があります (「通常の」モックには、mockito を使用します)。
しかし、PowerMockito ステートメントをテスト内に含めると、Mockito は . で失敗しますorg.mockito.exceptions.misusing.UnfinishedStubbingException
。行にコメントするPowerMockito.mockStatic(Application.class), PowerMockito.doNothing().when(Application.class) and PowerMockito.verifyStatic()
と、UnfinishedStubbingExceptiondoes は発生しませんが、この方法では、IllegalArgumentException が発生したかどうかを確認できません。
テスト中のメソッドは次のようになります。
テストは次のようになります。
最新バージョンを使用して PowerMokito をインポートしました。
私が間違っていることは何ですか?どんなアドバイスでも大歓迎です。