クラス TestContextManager

java.lang.ObjectSE
org.springframework.test.context.TestContextManager

public class TestContextManager extends ObjectSE
TestContextManager は、Spring TestContext フレームワークへのメインエントリポイントです

具体的には、TestContextManager は、単一の TestContext を管理し、次のテスト実行ポイントで登録済みの各 TestExecutionListener にイベントを通知します。

アプリケーションコンテキストの読み込みとアクセス、テストインスタンスの依存性注入、テストメソッドのトランザクション実行などのサポートは、それぞれ @ContextConfiguration@TestExecutionListeners を介して構成された ContextLoaders と TestExecutionListeners によって提供されます。

TestContext、デフォルトの ContextLoader、デフォルトの TestExecutionListeners、それらのコラボレーターのブートストラップは、@BootstrapWith を介して構成された TestContextBootstrapper によって実行されます。

導入:
2.5
作成者:
Sam Brannen, Juergen Hoeller
関連事項:
  • コンストラクターの詳細

  • メソッドの詳細

    • getTestContext

      public final TestContext getTestContext()
      この TestContextManager によって管理される TestContext を取得します。
    • registerTestExecutionListeners

      public void registerTestExecutionListeners(ListSE<TestExecutionListener> testExecutionListeners)
      提供された TestExecutionListeners のリストを、この TestContextManager が使用するリスナーのリストに追加して登録します。
      関連事項:
    • registerTestExecutionListeners

      public void registerTestExecutionListeners(TestExecutionListener... testExecutionListeners)
      この TestContextManager で使用されるリスナーのリストに追加された TestExecutionListeners の配列を登録します。
    • getTestExecutionListeners

      public final ListSE<TestExecutionListener> getTestExecutionListeners()
      この TestContextManager に登録されている現在の TestExecutionListeners を取得します。

      変更が可能です。リストの最初にリスナーを追加します。ただし、実際にテストを実行している間は、リストを安定させておいてください。

    • beforeTestClass

      public void beforeTestClass() throws ExceptionSE
      クラス内のテストを実行する前に、テストクラスを前処理するためのフック。フレームワーク固有のクラスメソッドの前に呼び出す必要があります。たとえば、JUnit Jupiter の @BeforeAll でアノテーションが付けられたメソッドです。

      登録された各 TestExecutionListener にテストクラスの実行を前処理する機会を与える試みが行われます。ただし、リスナーが例外をスローした場合、登録されている残りのリスナーは呼び出されません。

      例外:
      ExceptionSE - 登録された TestExecutionListener が例外をスローした場合
      導入:
      3.0
      関連事項:
    • prepareTestInstance

      public void prepareTestInstance(ObjectSE testInstance) throws ExceptionSE
      個々のテストメソッドを実行する前に、テストインスタンスを準備するためのフック - たとえば、依存性を注入します。

      このメソッドは、テストクラスのインスタンス化の直後、またはインスタンス化のできるだけ直後に呼び出す必要があります(SpringMethodRule の場合のように)。いずれの場合も、このメソッドは、フレームワーク固有のライフサイクルコールバックの前に呼び出す必要があります。

      管理対象の TestContext は、提供された testInstance で更新されます。

      登録された各 TestExecutionListener にテストインスタンスを準備する機会を与える試みが行われます。ただし、リスナーが例外をスローした場合、登録されている残りのリスナーは呼び出されません。

      パラメーター:
      testInstance - 準備するテストインスタンス
      例外:
      ExceptionSE - 登録された TestExecutionListener が例外をスローした場合
      関連事項:
    • beforeTestMethod

      public void beforeTestMethod(ObjectSE testInstance, MethodSE testMethod) throws ExceptionSE
      基になるテストフレームワークのライフサイクル前のコールバックを実行する前にテストを処理するためのフック。たとえば、テストフィクスチャのセットアップ、トランザクションの開始など。

      このメソッドは、フレームワーク固有のライフサイクルのコールバックの直前に呼び出す必要があります。たとえば、JUnit Jupiter の @BeforeEach でアノテーションが付けられたメソッドです。歴史的な理由から、このメソッドは beforeTestMethod と名付けられました。beforeTestExecution(java.lang.Object, java.lang.reflect.Method) の導入以来、このメソッドのより適切な名前は beforeTestSetUp や beforeEach のようなものかもしれません。ただし、残念ながら下位互換性の問題により、このメソッドの名前を変更することはできません。

      管理対象の TestContext は、提供されている testInstance および testMethod で更新されます。

      登録された各 TestExecutionListener にその前処理を実行する機会を与える試みが行われます。ただし、リスナーが例外をスローした場合、登録されている残りのリスナーは呼び出されません。

      パラメーター:
      testInstance - 現在のテストインスタンス
      testMethod - テストインスタンスで実行されようとしているテストメソッド
      例外:
      ExceptionSE - 登録された TestExecutionListener が例外をスローした場合
      関連事項:
    • beforeTestExecution

      public void beforeTestExecution(ObjectSE testInstance, MethodSE testMethod) throws ExceptionSE
      与えられたテストコンテキストSEテストメソッドが実行される直前にテストを前処理するためのフックです ; たとえば、タイミングやロギングを目的とします。

      このメソッドは、ライフサイクルコールバックのにフレームワーク固有の後に呼び出す必要があります。たとえば、JUnit Jupiter の @BeforeEach でアノテーションが付けられたメソッドです。

      管理対象の TestContext は、提供されている testInstance および testMethod で更新されます。

      登録された各 TestExecutionListener にその前処理を実行する機会を与える試みが行われます。ただし、リスナーが例外をスローした場合、登録されている残りのリスナーは呼び出されません。

      パラメーター:
      testInstance - 現在のテストインスタンス
      testMethod - テストインスタンスで実行されようとしているテストメソッド
      例外:
      ExceptionSE - 登録された TestExecutionListener が例外をスローした場合
      導入:
      5.0
      関連事項:
    • afterTestExecution

      public void afterTestExecution(ObjectSE testInstance, MethodSE testMethod, @Nullable ThrowableSE exception) throws ExceptionSE
      提供されたテストコンテキスト でテストメソッドSEを実行した直後にテストを後処理するためのフック(タイミングやログ記録など)。

      このメソッドは、フレームワーク固有のアフターライフサイクルコールバックの前に呼び出す必要があります。たとえば、JUnit Jupiter の @AfterEach でアノテーションが付けられたメソッドです。

      管理対象の TestContext は、付属の testInstancetestMethodexception で更新されます。

      登録された各 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 は、付属の testInstancetestMethodexception で更新されます。

      登録された各 TestExecutionListener には、後処理を実行する機会が与えられます。リスナーが例外をスローした場合でも、残りの登録済みリスナーが呼び出されます。すべてのリスナーが実行された後、最初にキャッチされた例外が再スローされ、後続の例外は最初の例外で抑制SEされます。

      登録されたリスナーは逆に実行されることに注意してください

      パラメーター:
      testInstance - 現在のテストインスタンス
      testMethod - テストインスタンスで実行されたばかりのテストメソッド
      exception - テストメソッドの実行中に、または TestExecutionListener によってスローされた例外、または何もスローされなかった場合は null 
      例外:
      ExceptionSE - 登録された TestExecutionListener が例外をスローした場合
      関連事項:
    • afterTestClass

      public void afterTestClass() throws ExceptionSE
      クラス内のすべてのテストの実行にテストクラスを後処理するためのフック。フレームワーク固有のクラスメソッドの後 (たとえば、JUnit Jupiter の @AfterAll でアノテーションが付けられたメソッド) の後に呼び出す必要があります。

      登録された各 TestExecutionListener には、後処理を実行する機会が与えられます。リスナーが例外をスローした場合でも、残りの登録済みリスナーが呼び出されます。すべてのリスナーが実行された後、最初にキャッチされた例外が再スローされ、後続の例外は最初の例外で抑制SEされます。

      登録されたリスナーは逆に実行されることに注意してください

      例外:
      ExceptionSE - 登録された TestExecutionListener が例外をスローした場合
      導入:
      3.0
      関連事項: