ホームページ >Java >&#&チュートリアル >PowerMock を使用して単一の静的メソッドをモックし、カスタム オブジェクトを返す方法
Java で静的メソッドをモックする場合、特定のメソッドを選択的にスタブしてオブジェクトを返す必要が生じる場合があります。カスタムオブジェクト。 PowerMock は、これを実現するために必要な機能を提供します。
静的メソッドをモックするには、まず PowerMockito.mockStatic() を使用してターゲット クラスの静的モックを有効にする必要があります。ただし、クラスに戻り値の型が異なる複数の静的メソッドが含まれている場合、このメソッドに割り当てられたデフォルトの回答戦略では型不一致エラーが発生する可能性があります。
代わりに、モッキングとスタブを使用する必要があります。静的モックを有効にするために、mockStatic() の -argument オーバーロードを使用してから、PowerMockito.when() と thenReturn() を使用して、個々のメソッドに必要な動作を指定します。これにより、スタブ化されたメソッドごとにカスタムの戻り値を定義できます。
1 つは String を返し、もう 1 つは int を返す 2 つの静的メソッドを持つクラスを考えます。
class ClassWithStatics { public static String getString() { return "String"; } public static int getInt() { return 1; } }
getString() メソッドをスタブにして「Hello!」を返すには、次のようにします。以下:
PowerMockito.mockStatic(ClassWithStatics.class); when(ClassWithStatics.getString()).thenReturn("Hello!"); System.out.println("String: " + ClassWithStatics.getString());
getInt() メソッドが明示的にスタブ化されていないことに注意してください。 0 を返すデフォルトの動作が使用されます。
静的モックとスタブ化手法を正しく組み合わせて使用することで、単一の静的メソッドを選択的にモックし、PowerMock でオブジェクトを返すことができます。これにより、Java コード内の特定の静的メソッドの動作をテストして分離できます。
以上がPowerMock を使用して単一の静的メソッドをモックし、カスタム オブジェクトを返す方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。