主要な抽象化
フレームワークのコアは、TestContextManager
クラスと TestContext
、TestExecutionListener
、SmartContextLoader
インターフェースで構成されています。TestContextManager
は、テストクラスごとに作成されます(たとえば、JUnit Jupiter の単一のテストクラス内のすべてのテストメソッドの実行用)。次に、TestContextManager
は、現在のテストのコンテキストを保持する TestContext
を管理します。TestContextManager
は、テストの進行に応じて TestContext
の状態も更新し、依存性注入の提供やトランザクションの管理などによって実際のテスト実行を計測する TestExecutionListener
実装に委譲します。SmartContextLoader
は、特定のテストクラスの ApplicationContext
をロードするロールを果たします。さまざまな実装の詳細と例については、javadoc と Spring Test スイートを参照してください。
TestContext
TestContext
は、テストが実行されるコンテキスト(使用中の実際のテストフレームワークに依存しない)をカプセル化し、それが担当するテストインスタンスにコンテキスト管理とキャッシュサポートを提供します。TestContext
は、リクエストされた場合に SmartContextLoader
に委譲して ApplicationContext
をロードします。
TestContextManager
TestContextManager
は、Spring TestContext フレームワークへのメインエントリポイントであり、単一の TestContext
を管理し、明確に定義されたテスト実行ポイントで各登録済み TestExecutionListener
にイベントを通知します。
特定のテストフレームワークの "before before" または "before before" メソッドの前。
テストインスタンスの後処理。
特定のテストフレームワークの「前」または「各前」メソッドの前。
テストメソッドの実行直前、ただしテストのセットアップ後。
テストメソッドの実行直後、テストの分解前。
特定のテストフレームワークの「後」または「各後」メソッドの後。
特定のテストフレームワークの「クラスの後」または「すべての後」のメソッドの後。
TestExecutionListener
TestExecutionListener
は、リスナーが登録されている TestContextManager
によって発行されたテスト実行イベントに反応するための API を定義します。TestExecutionListener
設定を参照してください。
コンテキストローダー
ContextLoader
は、Spring TestContext フレームワークによって管理される統合テスト用に ApplicationContext
をロードするための戦略インターフェースです。このインターフェースの代わりに SmartContextLoader
を実装して、コンポーネントクラス、アクティブな Bean 定義プロファイル、テストプロパティソース、コンテキスト階層、WebApplicationContext
サポートをサポートする必要があります。
SmartContextLoader
は、オリジナルの最小 ContextLoader
SPI に取って代わる ContextLoader
インターフェースの拡張です。具体的には、SmartContextLoader
は、リソースの場所、コンポーネントクラス、コンテキスト初期化子の処理を選択できます。さらに、SmartContextLoader
は、アクティブな Bean 定義プロファイルを設定し、ロードするコンテキストでプロパティソースをテストできます。
Spring は、次の実装を提供します。
DelegatingSmartContextLoader
: 2 つのデフォルトローダーの 1 つ。テストクラスに対して宣言された構成、またはデフォルトの場所またはデフォルトの構成クラスの存在に応じて、内部でAnnotationConfigContextLoader
、GenericXmlContextLoader
、GenericGroovyXmlContextLoader
に委譲します。Groovy サポートは、Groovy がクラスパス上にある場合にのみ有効になります。WebDelegatingSmartContextLoader
: 2 つのデフォルトローダーの 1 つ。テストクラスに対して宣言された構成、またはデフォルトの場所またはデフォルトの構成クラスの存在に応じて、内部でAnnotationConfigWebContextLoader
、GenericXmlWebContextLoader
、GenericGroovyXmlWebContextLoader
に委譲します。WebContextLoader
は、@WebAppConfiguration
がテストクラスに存在する場合にのみ使用されます。Groovy サポートは、Groovy がクラスパス上にある場合にのみ有効になります。AnnotationConfigContextLoader
: コンポーネントクラスから標準ApplicationContext
をロードします。AnnotationConfigWebContextLoader
: コンポーネントクラスからWebApplicationContext
をロードします。GenericGroovyXmlContextLoader
: Groovy スクリプトまたは XML 構成ファイルのいずれかであるリソースの場所から標準ApplicationContext
をロードします。GenericGroovyXmlWebContextLoader
: Groovy スクリプトまたは XML 構成ファイルのいずれかであるリソースの場所からWebApplicationContext
をロードします。GenericXmlContextLoader
: XML リソースの場所から標準ApplicationContext
をロードします。GenericXmlWebContextLoader
: XML リソースの場所からWebApplicationContext
をロードします。