インターフェース TestExecutionListener
- すべての既知のサブインターフェース:
AotTestExecutionListener
- すべての既知の実装クラス:
AbstractDirtiesContextTestExecutionListener
、AbstractTestExecutionListener
、ApplicationEventsTestExecutionListener
、DependencyInjectionTestExecutionListener
、DirtiesContextBeforeModesTestExecutionListener
、DirtiesContextTestExecutionListener
、EventPublishingTestExecutionListener
、ServletTestExecutionListener
、SqlScriptsTestExecutionListener
、TransactionalTestExecutionListener
TestExecutionListener
は、リスナーが登録されている TestContextManager
によって発行されたテスト実行イベントに反応するためのリスナー API を定義します。 すべてのテストフレームワークがこの API で定義されているすべてのライフサイクルコールバックをサポートしているわけではないことに注意してください。例: SpringMethodRule
を使用する場合、beforeTestExecution(org.springframework.test.context.TestContext)
および afterTestExecution(org.springframework.test.context.TestContext)
は JUnit 4 との組み合わせではサポートされません。
このインターフェースは、すべてのメソッドに対して空の default
実装を提供します。具体的な実装では、目前のタスクに適したメソッドのみをオーバーライドすることを選択できます。
具体的な実装では、public
引数なしコンストラクターを提供する必要があります。これにより、ツールと構成メカニズムによってリスナーを透過的にインスタンス化できます。
実装では、オプションで、Ordered
インターフェースまたは @Order
アノテーションを介して、デフォルトリスナーのチェーン間での順序を宣言する必要があります。詳細については、TestContextBootstrapper.getTestExecutionListeners()
を参照してください。
TestExecutionListener 実装の登録
TestExecutionListener
は、@TestExecutionListeners
アノテーションを使用して、テストクラス、そのサブクラス、そのネストされたクラスに対して明示的に登録できます。明示的な登録は、限定的なテストシナリオで使用されるカスタムリスナーに適しています。ただし、テストスイート全体でカスタムリスナーを使用する必要がある場合は、面倒になる可能性があります。この課題は、SpringFactoriesLoader
メカニズムによるデフォルトの TestExecutionListener
実装の自動検出をサポートすることで解決されています。特に、デフォルトの TestExecutionListener
実装は、META-INF/spring.factories
プロパティファイルの org.springframework.test.context.TestExecutionListener
キーに登録できます。
Spring は、次の実装を提供します。これらはそれぞれ Ordered
を実装し、デフォルトで自動的に登録されます。
ServletTestExecutionListener
DirtiesContextBeforeModesTestExecutionListener
ApplicationEventsTestExecutionListener
DependencyInjectionTestExecutionListener
MicrometerObservationRegistryTestExecutionListener
DirtiesContextTestExecutionListener
TransactionalTestExecutionListener
SqlScriptsTestExecutionListener
EventPublishingTestExecutionListener
- 導入:
- 2.5
- 作成者:
- Sam Brannen, Juergen Hoeller
- 関連事項:
メソッドのサマリー
修飾子と型メソッド説明default void
afterTestClass
(TestContext testContext) クラス内のすべてのテストを実行した後、テストクラスを後処理します。default void
afterTestExecution
(TestContext testContext) 提供されたテストコンテキスト でテストメソッドSEを実行した直後に、タイミングやログ記録などの目的でテストを後処理します。default void
afterTestMethod
(TestContext testContext) たとえば、テストフィクスチャを切断することによって - 基本的なテストフレームワークのライフサイクルコールバック後の実行後にテストをポスト処理します。default void
beforeTestClass
(TestContext testContext) クラス内のすべてのテストを実行する前に、テストクラスを前処理します。default void
beforeTestExecution
(TestContext testContext) 提供されたテストコンテキスト でテストメソッドSEを実行する直前に、タイミングやログ記録などの目的でテストを前処理します。default void
beforeTestMethod
(TestContext testContext) 基礎となるテストフレームワークのライフサイクル前コールバックの実行前にテストを前処理します。たとえば、テストフィクスチャをセットアップします。default void
prepareTestInstance
(TestContext testContext) 提供されたテストコンテキスト のテストインスタンスSEを準備します。たとえば、依存関係を注入します。
メソッドの詳細
beforeTestClass
クラス内のすべてのテストを実行する前に、テストクラスを前処理します。このメソッドは、フレームワーク固有の before クラスライフサイクルコールバックの直前に呼び出す必要があります。
デフォルトの実装は空です。必要に応じて、具象クラスでオーバーライドできます。
- パラメーター:
testContext
- テストのテストコンテキスト。null
- 例外:
ExceptionSE
- 例外の伝播を許可します- 導入:
- 3.0
prepareTestInstance
提供されたテストコンテキスト のテストインスタンスSEを準備します。たとえば、依存関係を注入します。このメソッドは、テストクラスのインスタンス化の直後、またはインスタンス化のできるだけ直後に呼び出す必要があります(
SpringMethodRule
の場合のように)。いずれの場合も、このメソッドは、フレームワーク固有のライフサイクルコールバックの前に呼び出す必要があります。デフォルトの実装は空です。必要に応じて、具象クラスでオーバーライドできます。
- パラメーター:
testContext
- テストのテストコンテキスト。null
- 例外:
ExceptionSE
- 例外の伝播を許可します
beforeTestMethod
基礎となるテストフレームワークのライフサイクル前コールバックの実行前にテストを前処理します。たとえば、テストフィクスチャをセットアップします。このメソッド は、ライフサイクルコールバック前のフレームワーク固有の直前に呼び出す必要があります。歴史的な理由により、このメソッドは
beforeTestMethod
と呼ばれています。beforeTestExecution(org.springframework.test.context.TestContext)
の導入以来、このメソッドのより適切な名前は、beforeTestSetUp
またはbeforeEach
のようなものになります。ただし、下位互換性の問題により、残念ながらこのメソッドの名前を変更することはできません。デフォルトの実装は空です。必要に応じて、具象クラスでオーバーライドできます。
- パラメーター:
testContext
- テストメソッドが実行されるテストコンテキスト。非null
- 例外:
ExceptionSE
- 例外の伝播を許可します- 関連事項:
beforeTestExecution
提供されたテストコンテキスト でテストメソッドSEを実行する直前に、タイミングやログ記録などの目的でテストを前処理します。このメソッド は、ライフサイクルコールバックの前にフレームワーク固有の後で呼び出す必要があります。
デフォルトの実装は空です。必要に応じて、具象クラスでオーバーライドできます。
- パラメーター:
testContext
- テストメソッドが実行されるテストコンテキスト。非null
- 例外:
ExceptionSE
- 例外の伝播を許可します- 導入:
- 5.0
- 関連事項:
afterTestExecution
提供されたテストコンテキスト でテストメソッドSEを実行した直後に、タイミングやログ記録などの目的でテストを後処理します。このメソッド は、ライフサイクルコールバック後のフレームワーク固有の前に呼び出す必要があります。
デフォルトの実装は空です。必要に応じて、具象クラスでオーバーライドできます。
- パラメーター:
testContext
- テストメソッドが実行されるテストコンテキスト。非null
- 例外:
ExceptionSE
- 例外の伝播を許可します- 導入:
- 5.0
- 関連事項:
afterTestMethod
たとえば、テストフィクスチャを切断することによって - 基本的なテストフレームワークのライフサイクルコールバック後の実行後にテストをポスト処理します。このメソッド は、ライフサイクルコールバック後のフレームワーク固有の直後に呼び出す必要があります。歴史的な理由により、このメソッドの名前は
afterTestMethod
です。afterTestExecution(org.springframework.test.context.TestContext)
の導入以来、このメソッドのより適切な名前は、afterTestTearDown
またはafterEach
のようなものになります。ただし、下位互換性の問題から、残念ながらこのメソッドの名前を変更することはできません。デフォルトの実装は空です。必要に応じて、具象クラスでオーバーライドできます。
- パラメーター:
testContext
- テストメソッドが実行されたテストコンテキスト ; 決してnull
- 例外:
ExceptionSE
- 例外の伝播を許可します- 関連事項:
afterTestClass
クラス内のすべてのテストを実行した後、テストクラスを後処理します。このメソッドは、クラスのライフサイクルコールバックの後、フレームワーク固有の直後に呼び出す必要があります。
デフォルトの実装は空です。必要に応じて、具象クラスでオーバーライドできます。
- パラメーター:
testContext
- テストのテストコンテキスト。null
- 例外:
ExceptionSE
- 例外の伝播を許可します- 導入:
- 3.0