クラス ReflectionTestUtils
ReflectionTestUtils は、単体および統合テストのシナリオで使用するためのリフレクションベースのユーティリティメソッドのコレクションです。 例: public 以外のフィールドを設定したり、public 以外の setter メソッドを呼び出したり、public 以外の構成またはライフサイクルコールバックメソッドを呼び出したりすると、次のようなコードをテストできると便利な場合があります。
- ドメインエンティティのプロパティの
publicsetter メソッドとは対照的に、privateまたはprotectedフィールドアクセスの使用を許可する JPA や Hibernate などの ORM フレームワーク。 privateまたはprotectedフィールド、setter メソッド、構成メソッドに依存性注入を提供する@Autowired、@InjectEE、@ResourceEE などのアノテーションに対する Spring のサポート。- ライフサイクルコールバックメソッドに対する
@PostConstructEE や@PreDestroyEE などのアノテーションの使用。
さらに、このクラスのいくつかのメソッドは、static フィールドと static メソッドのサポートを提供します。— たとえば、setField(Class, String, Object)、getField(Class, String)、invokeMethod(Class, String, Object...)、invokeMethod(Object, Class, String, Object...) など。
- 導入:
- 2.5
- 作成者:
- Sam Brannen, Juergen Hoeller
- 関連事項:
コンストラクターの概要
コンストラクターメソッドのサマリー
修飾子と型メソッド説明static ObjectSEstatic ObjectSEstatic ObjectSEstatic ObjectSEinvokeGetterMethod(ObjectSE target, StringSE name) 指定されたvalueを使用して、指定されたターゲットオブジェクトで指定されたnameを使用して getter メソッドを呼び出します。static <T> TinvokeMethod(ClassSE<?> targetClass, StringSE name, ObjectSE... args) 指定された引数を使用して、指定されたターゲットクラスで指定されたnameを使用して静的メソッドを呼び出します。static <T> TinvokeMethod(ObjectSE targetObject, ClassSE<?> targetClass, StringSE name, ObjectSE... args) 指定された引数を使用して、指定されたtargetObject/targetClassで指定されたnameを使用してメソッドを呼び出します。static <T> TinvokeMethod(ObjectSE target, StringSE name, ObjectSE... args) 指定された引数を使用して、指定されたターゲットオブジェクトで指定されたnameを使用してメソッドを呼び出します。static voidinvokeSetterMethod(ObjectSE target, StringSE name, ObjectSE value) 指定されたvalueを使用して、指定されたターゲットオブジェクトで指定されたnameを使用して setter メソッドを呼び出します。static voidinvokeSetterMethod(ObjectSE target, StringSE name, ObjectSE value, ClassSE<?> type) 指定されたvalueを使用して、指定されたターゲットオブジェクトで指定されたnameを使用して setter メソッドを呼び出します。static voidstatic voidstatic voidsetField(ObjectSE targetObject, ClassSE<?> targetClass, StringSE name, ObjectSE value, ClassSE<?> type) static voidstatic void
コンストラクターの詳細
ReflectionTestUtils
public ReflectionTestUtils()
メソッドの詳細
setField
提供されたtargetObject上の指定されたnameのフィールドを、提供されたvalueに設定SEします。このメソッドは
setField(Object, String, Object, Class)に委譲し、type引数にnullを提供します。- パラメーター:
targetObject- フィールドを設定する対象オブジェクト。非nullname- 設定するフィールドの名前。非nullvalue- 設定する値
setField
public static void setField(ObjectSE targetObject, @Nullable StringSE name, @Nullable ObjectSE value, @Nullable ClassSE<?> type) 提供されたtargetObject上の指定されたname/typeのフィールドSEを提供されたvalueに設定します。このメソッドは
setField(Object, Class, String, Object, Class)に委譲し、targetClass引数にnullを提供します。- パラメーター:
targetObject- フィールドを設定する対象オブジェクト。非nullname- 設定するフィールドの名前。typeが指定されている場合、nullになりますvalue- 設定する値type- 設定するフィールドの型。nameが指定されている場合、nullになります
setField
提供されたtargetClass上の指定されたnameの静的フィールドを提供されたvalueに設定SEします。このメソッドは
setField(Object, Class, String, Object, Class)に委譲し、targetObjectおよびtype引数にnullを提供します。このメソッドは、
static finalフィールドの設定をサポートしていません。- パラメーター:
targetClass- 静的フィールドを設定するターゲットクラス。非nullname- 設定するフィールドの名前。非nullvalue- 設定する値- 導入:
- 4.2
setField
public static void setField(ClassSE<?> targetClass, @Nullable StringSE name, @Nullable ObjectSE value, @Nullable ClassSE<?> type) 提供されたtargetClass上の指定されたname/typeの静的フィールドSEを提供されたvalueに設定します。このメソッドは
setField(Object, Class, String, Object, Class)に委譲し、targetObject引数にnullを提供します。このメソッドは、
static finalフィールドの設定をサポートしていません。- パラメーター:
targetClass- 静的フィールドを設定するターゲットクラス。非nullname- 設定するフィールドの名前。typeが指定されている場合、nullになりますvalue- 設定する値type- 設定するフィールドの型。nameが指定されている場合、nullになります- 導入:
- 4.2
setField
public static void setField(@Nullable ObjectSE targetObject, @Nullable ClassSE<?> targetClass, @Nullable StringSE name, @Nullable ObjectSE value, @Nullable ClassSE<?> type) 提供されたtargetObject/targetClass上の指定されたname/typeのフィールドSEを提供されたvalueに設定します。供給
targetObjectがプロキシがある場合、次のようになります開封されたフィールドは、プロキシの究極のゴールに設定することができます。このメソッドは、目的のフィールドを検索するためにクラス階層をトラバースします。さらに、
非 publicフィールドにアクセスできるようにする試みが行われるため、protected、private、パッケージプライベートフィールドを設定できます。このメソッドは、
static finalフィールドの設定をサポートしていません。- パラメーター:
targetObject- フィールドを設定する対象オブジェクト。フィールドが静的な場合、nullになる場合がありますtargetClass- フィールドを設定するターゲットクラス。フィールドがインスタンスフィールドの場合、nullの場合がありますname- 設定するフィールドの名前。typeが指定されている場合、nullになりますvalue- 設定する値type- 設定するフィールドの型。nameが指定されている場合、nullになります- 導入:
- 4.2
- 関連事項:
getField
提供されたtargetObjectから、指定されたnameを持つフィールドSEの値を取得します。このメソッドは
getField(Object, Class, String)に委譲し、targetClass引数にnullを提供します。- パラメーター:
targetObject- フィールドを取得するターゲットオブジェクト。非nullname- 取得するフィールドの名前。非null- 戻り値:
- フィールドの現在の値
- 関連事項:
getField
提供されたtargetClassから、指定されたnameの静的フィールドSEの値を取得します。このメソッドは
getField(Object, Class, String)に委譲し、targetObject引数にnullを提供します。- パラメーター:
targetClass- 静的フィールドを取得するターゲットクラス。非nullname- 取得するフィールドの名前。非null- 戻り値:
- フィールドの現在の値
- 導入:
- 4.2
- 関連事項:
getField
@Nullable public static ObjectSE getField(@Nullable ObjectSE targetObject, @Nullable ClassSE<?> targetClass, StringSE name) 提供されたtargetObject/targetClassから指定されたnameを持つフィールドSEの値を取得します。供給
targetObjectがプロキシである場合、なり開封フィールドは、プロキシの最終的なゴールから取得されることを可能にします。このメソッドは、目的のフィールドを検索するためにクラス階層をトラバースします。さらに、
非 publicフィールドにアクセスできるようにする試みが行われるため、protected、private、パッケージプライベートフィールドを取得できます。- パラメーター:
targetObject- フィールドを取得するターゲットオブジェクト。フィールドが静的な場合、nullになる場合がありますtargetClass- フィールドを取得するターゲットクラス。フィールドがインスタンスフィールドの場合、nullの場合がありますname- 取得するフィールドの名前。非null- 戻り値:
- フィールドの現在の値
- 導入:
- 4.2
- 関連事項:
invokeSetterMethod
指定されたvalueを使用して、指定されたターゲットオブジェクトで指定されたnameを使用して setter メソッドを呼び出します。このメソッドは、目的のメソッドを検索するためにクラス階層をトラバースします。さらに、
public以外のメソッドにアクセスできるようにする試みが行われるため、protected、private、パッケージプライベート setter メソッドを呼び出すことができます。さらに、このメソッドは JavaBean スタイルのプロパティ名をサポートします。例: ターゲットオブジェクトに
nameプロパティを設定する場合、メソッド名として "name" または "setName" のいずれかを渡すことができます。- パラメーター:
target- 指定された setter メソッドを呼び出すターゲットオブジェクトname- 呼び出す setter メソッドの名前または対応するプロパティ名value- setter メソッドに提供する値- 関連事項:
invokeSetterMethod
public static void invokeSetterMethod(ObjectSE target, StringSE name, @Nullable ObjectSE value, @Nullable ClassSE<?> type) 指定されたvalueを使用して、指定されたターゲットオブジェクトで指定されたnameを使用して setter メソッドを呼び出します。このメソッドは、目的のメソッドを検索するためにクラス階層をトラバースします。さらに、
public以外のメソッドにアクセスできるようにする試みが行われるため、protected、private、パッケージプライベート setter メソッドを呼び出すことができます。さらに、このメソッドは JavaBean スタイルのプロパティ名をサポートします。例: ターゲットオブジェクトに
nameプロパティを設定する場合、メソッド名として "name" または "setName" のいずれかを渡すことができます。- パラメーター:
target- 指定された setter メソッドを呼び出すターゲットオブジェクトname- 呼び出す setter メソッドの名前または対応するプロパティ名value- setter メソッドに提供する値type- setter メソッドによって宣言された仮パラメーター型- 関連事項:
invokeGetterMethod
指定されたvalueを使用して、指定されたターゲットオブジェクトで指定されたnameを使用して getter メソッドを呼び出します。このメソッドは、目的のメソッドを検索するためにクラス階層をトラバースします。さらに、
public以外のメソッドにアクセスできるようにする試みが行われるため、protected、private、パッケージプライベート getter メソッドを呼び出すことができます。さらに、このメソッドは JavaBean スタイルのプロパティ名をサポートします。例: ターゲットオブジェクトの
nameプロパティを取得する場合、メソッド名として "name" または "getName" を渡すことができます。- パラメーター:
target- 指定された getter メソッドを呼び出すターゲットオブジェクトname- 呼び出す getter メソッドの名前または対応するプロパティ名- 戻り値:
- 呼び出しから返された値
- 関連事項:
invokeMethod
指定された引数を使用して、指定されたターゲットオブジェクトで指定されたnameを使用してメソッドを呼び出します。このメソッドは
invokeMethod(Object, Class, String, Object...)に委譲し、targetClass引数にnullを提供します。- パラメーター:
target- 指定されたメソッドを呼び出す対象オブジェクトname- 呼び出すメソッドの名前args- メソッドに提供する引数- 戻り値:
- 呼び出し結果(ある場合)
- 関連事項:
invokeMethod
指定された引数を使用して、指定されたターゲットクラスで指定されたnameを使用して静的メソッドを呼び出します。このメソッドは
invokeMethod(Object, Class, String, Object...)に委譲し、targetObject引数にnullを提供します。- パラメーター:
targetClass- 指定されたメソッドを呼び出す対象クラスname- 呼び出すメソッドの名前args- メソッドに提供する引数- 戻り値:
- 呼び出し結果(ある場合)
- 導入:
- 5.2
- 関連事項:
invokeMethod
@Nullable public static <T> T invokeMethod(@Nullable ObjectSE targetObject, @Nullable ClassSE<?> targetClass, StringSE name, ObjectSE... args) 指定された引数を使用して、指定されたtargetObject/targetClassで指定されたnameを使用してメソッドを呼び出します。このメソッドは、目的のメソッドを検索するためにクラス階層をトラバースします。さらに、
非 publicメソッドにアクセスできるようにする試みが行われるため、protected、private、パッケージプライベートメソッドを呼び出すことができます。- パラメーター:
targetObject- メソッドを呼び出す対象オブジェクト。メソッドが静的な場合、nulltargetClass- メソッドを呼び出す対象クラス。メソッドがインスタンスメソッドの場合、nullname- 呼び出すメソッドの名前args- メソッドに提供する引数- 戻り値:
- 呼び出し結果(ある場合)
- 導入:
- 5.2
- 関連事項: