@TargetSE(valueSE=TYPESE) @RetentionSE(valueSE=RUNTIMESE) @DocumentedSE @InheritedSE public @interface TestConstructor
@TestConstructor
は型レベルのアノテーションであり、テストのクラスコンストラクターのパラメーターがテストの ApplicationContext
のコンポーネントからオートワイヤーされる方法を構成するために使用されます。@TestConstructor
は、テストクラスに存在するか、メタ存在しない場合、デフォルトのテストコンストラクター autowire モードが使用されます。デフォルトモードを変更する方法の詳細については、TEST_CONSTRUCTOR_AUTOWIRE_MODE_PROPERTY_NAME
を参照してください。ただし、コンストラクターでの @Autowired
のローカル宣言は、@TestConstructor
とデフォルトモードの両方よりも優先されることに注意してください。
このアノテーションは、カスタム構成アノテーションを作成するためのメタアノテーションとして使用することができます。
Spring Framework 5.2 では、このアノテーションは JUnit Jupiter で使用するために SpringExtension
と組み合わせてのみサポートされています。多くの場合、SpringExtension
は自動的に登録されることに注意してください。たとえば、@SpringJUnitConfig
や @SpringJUnitWebConfig
などのアノテーション、Spring Boot テストのさまざまなテスト関連のアノテーションを使用する場合です。
Spring Framework 5.3 以降、このアノテーションはデフォルトでそれを囲むテストクラスから継承されます。詳細については、@NestedTestConfiguration
を参照してください。
@Autowired
, SpringExtension
, @SpringJUnitConfig
, @SpringJUnitWebConfig
, @ContextConfiguration
, @ContextHierarchy
, @ActiveProfiles
, @TestPropertySource
修飾子と型 | フィールドと説明 |
---|---|
static StringSE | TEST_CONSTRUCTOR_AUTOWIRE_MODE_PROPERTY_NAME デフォルトのテストコンストラクターのオートワイヤーモードを変更するために使用される JVM システムプロパティ: "spring.test.constructor.autowire.mode"。 |
修飾子と型 | 必須要素と説明 |
---|---|
TestConstructor.AutowireMode | autowireMode 現在のテストクラスのテストコンストラクターのオートワイヤーモードを設定するためのフラグ。 |
public static final StringSE TEST_CONSTRUCTOR_AUTOWIRE_MODE_PROPERTY_NAME
許容値には、大文字と小文字を区別せずに、TestConstructor.AutowireMode
で定義された列挙型定数が含まれます。例: コマンドラインから次の JVM システムプロパティを指定することにより、デフォルトを TestConstructor.AutowireMode.ALL
に変更できます。
-Dspring.test.constructor.autowire.mode=all
プロパティが ALL
に設定されていない場合、テストクラスコンストラクターのパラメーターは、デフォルトで TestConstructor.AutowireMode.ANNOTATED
セマンティクスに従ってオートワイヤーされます。
あるいは、SpringProperties
メカニズムを介して構成することもできます。
Spring Framework 5.3 の時点で、このプロパティは JUnit プラットフォーム構成パラメーターとして構成することもできます。
autowireMode()
public abstract TestConstructor.AutowireMode autowireMode
このフラグを設定すると、グローバルデフォルトが上書きされます。グローバルデフォルトを変更する方法の詳細については、TEST_CONSTRUCTOR_AUTOWIRE_MODE_PROPERTY_NAME
を参照してください。