@TargetSE(valueSE=TYPESE) @RetentionSE(valueSE=RUNTIMESE) @DocumentedSE @InheritedSE public @interface TestExecutionListeners
TestExecutionListeners
は、どの TestExecutionListeners
を TestContextManager
に登録するかを構成するためのクラスレベルのメタデータを定義します。 通常、@TestExecutionListeners
は @ContextConfiguration
と組み合わせて使用されます。
このアノテーションは、カスタム構成アノテーションを作成するためのメタアノテーションとして使用することができます。
Spring Framework 5.3 以降、このアノテーションはデフォルトでそれを囲むテストクラスから継承されます。詳細については、@NestedTestConfiguration
を参照してください。
TestExecutionListener
, TestContextManager
, ContextConfiguration
修飾子と型 | オプションの要素と説明 |
---|---|
boolean | inheritListeners スーパークラスの TestExecutionListeners を継承するかどうか。 |
ClassSE<? extends TestExecutionListener>[] | listeners |
TestExecutionListeners.MergeMode | mergeMode スーパークラスからリスナーを継承しないクラスで @TestExecutionListeners が宣言されている場合に使用するマージモード。 |
ClassSE<? extends TestExecutionListener>[] | value listeners() のエイリアス。 |
@AliasFor(value="listeners") public abstract ClassSE<? extends TestExecutionListener>[] value
listeners()
のエイリアス。 この属性は、listeners()
と組み合わせて使用することはできませんが、listeners()
の代わりに使用することができます。
@AliasFor(value="value") public abstract ClassSE<? extends TestExecutionListener>[] listeners
TestContextManager
に登録する TestExecutionListeners
。 この属性は、value()
と組み合わせて使用することはできませんが、value()
の代わりに使用することができます。
ServletTestExecutionListener
, DirtiesContextBeforeModesTestExecutionListener
, ApplicationEventsTestExecutionListener
, DependencyInjectionTestExecutionListener
, DirtiesContextTestExecutionListener
, TransactionalTestExecutionListener
, SqlScriptsTestExecutionListener
, EventPublishingTestExecutionListener
public abstract boolean inheritListeners
TestExecutionListeners
を継承するかどうか。 デフォルト値は true
です。これは、アノテーション付きクラスがアノテーション付きスーパークラスによって定義されたリスナーを継承することを意味します。具体的には、アノテーション付きクラスのリスナーは、アノテーション付きスーパークラスによって定義されたリスナーのリストに追加されます。サブクラスには、リスナーのリストを拡張するオプションがあります。次の例では、AbstractBaseTest
は DependencyInjectionTestExecutionListener
および DirtiesContextTestExecutionListener
で構成されます。一方、TransactionalTest
は、DependencyInjectionTestExecutionListener
、DirtiesContextTestExecutionListener
、および TransactionalTestExecutionListener
の順に構成されます。
@TestExecutionListeners({ DependencyInjectionTestExecutionListener.class, DirtiesContextTestExecutionListener.class }) public abstract class AbstractBaseTest { // ... } @TestExecutionListeners(TransactionalTestExecutionListener.class) public class TransactionalTest extends AbstractBaseTest { // ... }
inheritListeners
が false
に設定されている場合、アノテーション付きクラスのリスナーはシャドウし、スーパークラスによって定義されたリスナーを効果的に置き換えます。
public abstract TestExecutionListeners.MergeMode mergeMode
@TestExecutionListeners
が宣言されている場合に使用するマージモード。 ローカルで宣言されたリスナーをデフォルトのリスナーとマージするために、MERGE_WITH_DEFAULTS
に設定できます。
リスナーがスーパークラスから継承されている場合、モードは無視されます。
下位互換性のために、デフォルトは REPLACE_DEFAULTS
です。
TestExecutionListeners.MergeMode