クラス TestContextManager
TestContextManager
は、Spring TestContext フレームワークへのメインエントリポイントです。 具体的には、TestContextManager
は、単一の TestContext
を管理し、次のテスト実行ポイントで登録済みの各 TestExecutionListener
にイベントを通知します。
before test class execution
: 特定のテストフレームワークの before クラスコールバックの前 — たとえば、JUnit Jupiter の@BeforeAll
test instance preparation
: テストクラスのインスタンス化の直後before test setup
: 特定のテストフレームワークの before メソッドコールバックの前 — たとえば、JUnit Jupiter の@BeforeEach
before test execution
: テストメソッドSEの実行直前、ただしテストセットアップ後after test execution
: テストメソッドSEの実行直後、テストの破棄前after test tear down
: 特定のテストフレームワークのメソッドコールバックの後 — たとえば、JUnit Jupiter の@AfterEach
after test class execution
: 特定のテストフレームワークのクラスコールバックの後 — たとえば、JUnit Jupiter の@AfterAll
アプリケーションコンテキストの読み込みとアクセス、テストインスタンスの依存性注入、テストメソッドのトランザクション実行などのサポートは、それぞれ @ContextConfiguration
と @TestExecutionListeners
を介して構成された ContextLoaders
と TestExecutionListeners
によって提供されます。
TestContext
、デフォルトの ContextLoader
、デフォルトの TestExecutionListeners
、それらのコラボレーターのブートストラップは、@BootstrapWith
を介して構成された TestContextBootstrapper
によって実行されます。
- 導入:
- 2.5
- 作成者:
- Sam Brannen, Juergen Hoeller
- 関連事項:
コンストラクターのサマリー
コンストラクター説明TestContextManager
(ClassSE<?> testClass) 提供されたテストクラスSEの新しいTestContextManager
を作成します。TestContextManager
(TestContextBootstrapper testContextBootstrapper) メソッドのサマリー
修飾子と型メソッド説明void
クラス内のすべてのテストの実行後にテストクラスを後処理するためのフック。void
afterTestExecution
(ObjectSE testInstance, MethodSE testMethod, ThrowableSE exception) 提供されたテストコンテキスト でテストメソッドSEを実行した直後にテストを後処理するためのフック(タイミングやログ記録など)。void
afterTestMethod
(ObjectSE testInstance, MethodSE testMethod, ThrowableSE exception) 基本的なテストフレームワークのライフサイクルコールバック後の実行後にテストを後処理するためのフック - たとえば、テストフィクスチャを切断、トランザクションを終了する、などvoid
クラス内でテストを実行する前に、テストクラスを前処理するためのフック。void
beforeTestExecution
(ObjectSE testInstance, MethodSE testMethod) 与えられたテストコンテキストSEでテストメソッドが実行される直前にテストを前処理するためのフックです ; たとえば、タイミングやロギングを目的とします。void
beforeTestMethod
(ObjectSE testInstance, MethodSE testMethod) 基になるテストフレームワークのライフサイクル前のコールバックを実行する前にテストを前処理するためのフック。たとえば、テストフィクスチャのセットアップ、トランザクションの開始など。final TestContext
このTestContextManager
によって管理されるTestContext
を取得します。final ListSE<TestExecutionListener>
このTestContextManager
に登録されている現在のTestExecutionListeners
を取得します。void
prepareTestInstance
(ObjectSE testInstance) 個々のテストメソッドを実行する前に、テストインスタンスを準備するためのフック - たとえば、依存性を注入します。void
registerTestExecutionListeners
(ListSE<TestExecutionListener> testExecutionListeners) 提供されたTestExecutionListeners
のリストを、このTestContextManager
が使用するリスナーのリストに追加して登録します。void
registerTestExecutionListeners
(TestExecutionListener... testExecutionListeners) このTestContextManager
で使用されるリスナーのリストに追加されたTestExecutionListeners
の配列を登録します。
コンストラクターの詳細
TestContextManager
提供されたテストクラスSEの新しいTestContextManager
を作成します。TestContextBootstrapper
がテストクラス用に構成されたTestContextManager(TestContextBootstrapper)
へのデリゲート。@BootstrapWith
アノテーションが直接またはメタアノテーションとしてテストクラスに存在する場合、そのvalue
がブートストラップ型として使用されます。それ以外の場合は、DefaultTestContextBootstrapper
が使用されます。- パラメーター:
testClass
- 管理するテストクラス- 関連事項:
TestContextManager
提供されたTestContextBootstrapper
を使用して新しいTestContextManager
を作成し、必要なTestExecutionListeners
を登録します。TestContext
を構築してTestExecutionListeners
を取得するために、提供されたTestContextBootstrapper
にデリゲートします。- パラメーター:
testContextBootstrapper
- 使用するブートストラップ- 導入:
- 4.2
- 関連事項:
メソッドの詳細
getTestContext
このTestContextManager
によって管理されるTestContext
を取得します。registerTestExecutionListeners
提供されたTestExecutionListeners
のリストを、このTestContextManager
が使用するリスナーのリストに追加して登録します。registerTestExecutionListeners
このTestContextManager
で使用されるリスナーのリストに追加されたTestExecutionListeners
の配列を登録します。getTestExecutionListeners
このTestContextManager
に登録されている現在のTestExecutionListeners
を取得します。変更が可能です。リストの最初にリスナーを追加します。ただし、実際にテストを実行している間は、リストを安定させておいてください。
beforeTestClass
クラス内のテストを実行する前に、テストクラスを前処理するためのフック。フレームワーク固有のクラスメソッドの前に呼び出す必要があります。たとえば、JUnit Jupiter の@BeforeAll
でアノテーションが付けられたメソッドです。登録された各
TestExecutionListener
にテストクラスの実行を前処理する機会を与える試みが行われます。ただし、リスナーが例外をスローした場合、登録されている残りのリスナーは呼び出されません。- 例外:
ExceptionSE
- 登録された TestExecutionListener が例外をスローした場合- 導入:
- 3.0
- 関連事項:
prepareTestInstance
個々のテストメソッドを実行する前に、テストインスタンスを準備するためのフック - たとえば、依存性を注入します。このメソッドは、テストクラスのインスタンス化の直後、またはインスタンス化のできるだけ直後に呼び出す必要があります(
SpringMethodRule
の場合のように)。いずれの場合も、このメソッドは、フレームワーク固有のライフサイクルコールバックの前に呼び出す必要があります。管理対象の
TestContext
は、提供されたtestInstance
で更新されます。登録された各
TestExecutionListener
にテストインスタンスを準備する機会を与える試みが行われます。ただし、リスナーが例外をスローした場合、登録されている残りのリスナーは呼び出されません。- パラメーター:
testInstance
- 準備するテストインスタンス- 例外:
ExceptionSE
- 登録された TestExecutionListener が例外をスローした場合- 関連事項:
beforeTestMethod
基になるテストフレームワークのライフサイクル前のコールバックを実行する前にテストを前処理するためのフック。たとえば、テストフィクスチャのセットアップ、トランザクションの開始など。このメソッドは、フレームワーク固有のライフサイクル前のコールバックの直前に呼び出す必要があります。たとえば、JUnit Jupiter の
@BeforeEach
でアノテーションが付けられたメソッドです。歴史的な理由から、このメソッドはbeforeTestMethod
と名付けられました。beforeTestExecution(java.lang.Object, java.lang.reflect.Method)
の導入以来、このメソッドのより適切な名前はbeforeTestSetUp
やbeforeEach
のようなものかもしれません。ただし、残念ながら下位互換性の問題により、このメソッドの名前を変更することはできません。管理対象の
TestContext
は、提供されているtestInstance
およびtestMethod
で更新されます。登録された各
TestExecutionListener
にその前処理を実行する機会を与える試みが行われます。ただし、リスナーが例外をスローした場合、登録されている残りのリスナーは呼び出されません。- パラメーター:
testInstance
- 現在のテストインスタンスtestMethod
- テストインスタンスで実行されようとしているテストメソッド- 例外:
ExceptionSE
- 登録された TestExecutionListener が例外をスローした場合- 関連事項:
beforeTestExecution
与えられたテストコンテキストSEでテストメソッドが実行される直前にテストを前処理するためのフックです ; たとえば、タイミングやロギングを目的とします。このメソッドは、ライフサイクルコールバックの前にフレームワーク固有の後に呼び出す必要があります。たとえば、JUnit Jupiter の
@BeforeEach
でアノテーションが付けられたメソッドです。管理対象の
TestContext
は、提供されているtestInstance
およびtestMethod
で更新されます。登録された各
TestExecutionListener
にその前処理を実行する機会を与える試みが行われます。ただし、リスナーが例外をスローした場合、登録されている残りのリスナーは呼び出されません。- パラメーター:
testInstance
- 現在のテストインスタンスtestMethod
- テストインスタンスで実行されようとしているテストメソッド- 例外:
ExceptionSE
- 登録された TestExecutionListener が例外をスローした場合- 導入:
- 5.0
- 関連事項:
beforeTestMethod(java.lang.Object, java.lang.reflect.Method)
afterTestMethod(java.lang.Object, java.lang.reflect.Method, java.lang.Throwable)
beforeTestExecution(java.lang.Object, java.lang.reflect.Method)
afterTestExecution(java.lang.Object, java.lang.reflect.Method, java.lang.Throwable)
getTestExecutionListeners()
afterTestExecution
public void afterTestExecution(ObjectSE testInstance, MethodSE testMethod, @Nullable ThrowableSE exception) throws ExceptionSE 提供されたテストコンテキスト でテストメソッドSEを実行した直後にテストを後処理するためのフック(タイミングやログ記録など)。このメソッドは、フレームワーク固有のアフターライフサイクルコールバックの前に呼び出す必要があります。たとえば、JUnit Jupiter の
@AfterEach
でアノテーションが付けられたメソッドです。管理対象の
TestContext
は、付属のtestInstance
、testMethod
、exception
で更新されます。登録された各
TestExecutionListener
には、後処理を実行する機会が与えられます。リスナーが例外をスローした場合でも、残りの登録済みリスナーが呼び出されます。すべてのリスナーが実行された後、最初にキャッチされた例外が再スローされ、後続の例外は最初の例外で抑制SEされます。登録されたリスナーは、登録された順序とは逆の順序で実行されることに注意してください。
- パラメーター:
testInstance
- 現在のテストインスタンスtestMethod
- テストインスタンスで実行されたばかりのテストメソッドexception
- テストメソッドの実行中に、または TestExecutionListener によってスローされた例外、または何もスローされなかった場合はnull
- 例外:
ExceptionSE
- 登録された TestExecutionListener が例外をスローした場合- 導入:
- 5.0
- 関連事項:
afterTestMethod
public void afterTestMethod(ObjectSE testInstance, MethodSE testMethod, @Nullable ThrowableSE exception) throws ExceptionSE 基本的なテストフレームワークのライフサイクルコールバック後の実行後にテストを後処理するためのフック - たとえば、テストフィクスチャを切断、トランザクションを終了する、などこのメソッドは、フレームワーク固有のアフターライフサイクルコールバックの直後に呼び出す必要があります。たとえば、JUnit Jupiter の
@AfterEach
でアノテーションが付けられたメソッドです。歴史的な理由から、このメソッドはafterTestMethod
と名付けられました。afterTestExecution(java.lang.Object, java.lang.reflect.Method, java.lang.Throwable)
の導入以来、このメソッドのより適切な名前はafterTestTearDown
やafterEach
のようなものかもしれません。ただし、残念ながら下位互換性の問題により、このメソッドの名前を変更することはできません。管理対象の
TestContext
は、付属のtestInstance
、testMethod
、exception
で更新されます。登録された各
TestExecutionListener
には、後処理を実行する機会が与えられます。リスナーが例外をスローした場合でも、残りの登録済みリスナーが呼び出されます。すべてのリスナーが実行された後、最初にキャッチされた例外が再スローされ、後続の例外は最初の例外で抑制SEされます。登録されたリスナーは逆に実行されることに注意してください
- パラメーター:
testInstance
- 現在のテストインスタンスtestMethod
- テストインスタンスで実行されたばかりのテストメソッドexception
- テストメソッドの実行中に、または TestExecutionListener によってスローされた例外、または何もスローされなかった場合はnull
- 例外:
ExceptionSE
- 登録された TestExecutionListener が例外をスローした場合- 関連事項:
afterTestClass
クラス内のすべてのテストの実行後にテストクラスを後処理するためのフック。フレームワーク固有のクラスメソッドの後 (たとえば、JUnit Jupiter の@AfterAll
でアノテーションが付けられたメソッド) の後に呼び出す必要があります。登録された各
TestExecutionListener
には、後処理を実行する機会が与えられます。リスナーが例外をスローした場合でも、残りの登録済みリスナーが呼び出されます。すべてのリスナーが実行された後、最初にキャッチされた例外が再スローされ、後続の例外は最初の例外で抑制SEされます。登録されたリスナーは逆に実行されることに注意してください
- 例外:
ExceptionSE
- 登録された TestExecutionListener が例外をスローした場合- 導入:
- 3.0
- 関連事項: