クラス TestContextManager
TestContextManager は、Spring TestContext フレームワークへのメインエントリポイントです。 具体的には、TestContextManager は、単一の TestContext を管理し、次のテスト実行ポイントで登録済みの各 TestExecutionListener にイベントを通知します。
before test class execution: 特定のテストフレームワークの before クラスコールバックの前 — たとえば、JUnit Jupiter の@BeforeAlltest instance preparation: テストクラスのインスタンス化の直後before test setup: 特定のテストフレームワークの before メソッドコールバックの前 — たとえば、JUnit Jupiter の@BeforeEachbefore test execution: テストメソッドSEの実行直前、ただしテストセットアップ後after test execution: テストメソッドSEの実行直後、テストの破棄前after test tear down: 特定のテストフレームワークのメソッドコールバックの後 — たとえば、JUnit Jupiter の@AfterEachafter 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クラス内のすべてのテストの実行後にテストクラスを後処理するためのフック。voidafterTestExecution(ObjectSE testInstance, MethodSE testMethod, ThrowableSE exception) 提供されたテストコンテキスト でテストメソッドSEを実行した直後にテストを後処理するためのフック(タイミングやログ記録など)。voidafterTestMethod(ObjectSE testInstance, MethodSE testMethod, ThrowableSE exception) 基本的なテストフレームワークのライフサイクルコールバック後の実行後にテストを後処理するためのフック - たとえば、テストフィクスチャを切断、トランザクションを終了する、などvoidクラス内でテストを実行する前に、テストクラスを前処理するためのフック。voidbeforeTestExecution(ObjectSE testInstance, MethodSE testMethod) 与えられたテストコンテキストSEでテストメソッドが実行される直前にテストを前処理するためのフックです ; たとえば、タイミングやロギングを目的とします。voidbeforeTestMethod(ObjectSE testInstance, MethodSE testMethod) 基になるテストフレームワークのライフサイクル前のコールバックを実行する前にテストを前処理するためのフック。たとえば、テストフィクスチャのセットアップ、トランザクションの開始など。final TestContextこのTestContextManagerによって管理されるTestContextを取得します。final ListSE<TestExecutionListener>このTestContextManagerに登録されている現在のTestExecutionListenersを取得します。voidprepareTestInstance(ObjectSE testInstance) 個々のテストメソッドを実行する前に、テストインスタンスを準備するためのフック - たとえば、依存性を注入します。voidregisterTestExecutionListeners(ListSE<TestExecutionListener> testExecutionListeners) 提供されたTestExecutionListenersのリストを、このTestContextManagerが使用するリスナーのリストに追加して登録します。voidregisterTestExecutionListeners(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
- 関連事項: