アノテーションインターフェース TestExecutionListeners
TestExecutionListeners
は、どの TestExecutionListeners
を TestContextManager
に登録するかを構成するためのクラスレベルのメタデータを定義します。@TestExecutionListeners
は、特定のテストクラス、そのサブクラス、ネストされたクラスのリスナーを登録するために使用されます。リスナーをグローバルに登録する場合は、TestExecutionListener
で説明されている自動検出メカニズムを介して登録する必要があります。
このアノテーションは、カスタム合成アノテーションを作成するためのメタアノテーションとして使用できます。Spring Framework 5.3 の時点で、このアノテーションはデフォルトで囲んでいるテストクラスから継承されます。詳細については、@NestedTestConfiguration
を参照してください。
デフォルトの TestExecutionListener
実装への切り替え
@TestExecutionListeners
でアノテーションが付けられたクラスを継承し、リスナーのデフォルトセットを使用するように切り替える必要がある場合は、次のようにクラスにアノテーションを付けることができます。
// Switch to default listeners @TestExecutionListeners(listeners = {}, inheritListeners = false, mergeMode = MERGE_WITH_DEFAULTS) class MyTests extends BaseTests { // ... }
- 導入:
- 2.5
- 作成者:
- Sam Brannen
- 関連事項:
ネストされたクラスのサマリー
修飾子と型クラス説明static enum
スーパークラスまたはそれを囲むクラスからリスナーを継承しないクラスで@TestExecutionListeners
が宣言されたときに、明示的に宣言されたリスナーをデフォルトのリスナーとマージするかどうかを指定するモードの列挙。オプション要素のサマリー
修飾子と型オプションの要素説明boolean
スーパークラスおよびそれを囲むクラスからのTestExecutionListeners
を継承する必要があるかどうか。ClassSE<? extends TestExecutionListener>[]
スーパークラスまたはそれを囲むクラスからリスナーを継承しないクラスで@TestExecutionListeners
が宣言されている場合に使用するマージモード。ClassSE<? extends TestExecutionListener>[]
listeners()
のエイリアス。
要素の詳細
value
listeners()
のエイリアス。この属性は、
listeners()
と組み合わせて使用することはできませんが、listeners()
の代わりに使用することができます。- デフォルト:
- {}
listeners
TestContextManager
に登録するTestExecutionListeners
。この属性は、
value()
と組み合わせて使用することはできませんが、value()
の代わりに使用することができます。- 関連事項:
- デフォルト:
- {}
inheritListeners
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
に設定されている場合、アノテーション付きクラスのリスナーはシャドウになり、スーパークラスまたはそれを囲むクラスによって定義されたリスナーを効果的に置き換えます。- デフォルト:
- true
mergeMode
TestExecutionListeners.MergeMode mergeModeスーパークラスまたはそれを囲むクラスからリスナーを継承しないクラスで@TestExecutionListeners
が宣言されている場合に使用するマージモード。ローカルで宣言されたリスナーをデフォルトのリスナーとマージするために、
MERGE_WITH_DEFAULTS
に設定できます。リスナーがスーパークラスまたはそれを囲むクラスから継承されている場合、このモードは無視されます。
下位互換性のために、デフォルトは
REPLACE_DEFAULTS
です。- 導入:
- 4.1
- 関連事項:
- デフォルト:
- REPLACE_DEFAULTS