public interface TestContext extends AttributeAccessor, SerializableSE
TestContext
は、テストが実行されるコンテキストをカプセル化します。使用中の実際のテストフレームワークには依存しません。Spring Framework 5.0 以降、具体的な実装では、TestContext
の不変の状態と属性を、並列テストの実行用に作成された追加のコンテキストのテンプレートとして使用できるように、コピーコンストラクターを実装することを強くお勧めします。コピーコンストラクターは、具象実装の型の単一の引数を受け入れる必要があります。コピーコンストラクターを提供しない実装は、テストを同時に実行する環境では失敗する可能性があります。
TestContextManager
, TestExecutionListener
修飾子と型 | メソッドと説明 |
---|---|
ApplicationContext | getApplicationContext() おそらくキャッシュされている、このテストコンテキストのアプリケーションコンテキストを取得します。 |
ClassSE<?> | getTestClass() このテストコンテキストのテストクラスSEを取得します。 |
ThrowableSE | getTestException() |
ObjectSE | getTestInstance() このテストコンテキストの現在のテストインスタンスを取得SEします。 |
MethodSE | getTestMethod() このテストコンテキストの現在のテストメソッドを取得SEします。 |
default boolean | hasApplicationContext() このテストコンテキストのアプリケーションコンテキストが利用可能であることがわかっているかどうかを確認します。 |
void | markApplicationContextDirty(DirtiesContext.HierarchyMode hierarchyMode) このメソッドを呼び出して、このテストコンテキストに関連付けられているアプリケーションコンテキストがダーティであり、コンテキストキャッシュから削除する必要があることを通知します。 |
default void | publishEvent(FunctionSE<TestContext,? extends ApplicationEvent> eventFactory) |
void | updateState(ObjectSE testInstance, MethodSE testMethod, ThrowableSE testException) このテストコンテキストを更新して、現在実行中のテストの状態を反映させます。 |
attributeNames, computeAttribute, getAttribute, hasAttribute, removeAttribute, setAttribute
default boolean hasApplicationContext()
このメソッドが true
を返す場合、その後の getApplicationContext()
の呼び出しは成功するはずです。
このメソッドのデフォルト実装は、常に false
を返します。カスタム TestContext
実装では、このメソッドをより意味のある実装でオーバーライドすることを強くお勧めします。Spring の標準 TestContext
実装がこのメソッドを適切にオーバーライドすることに注意してください。
true
getApplicationContext()
ApplicationContext getApplicationContext()
このメソッドの実装は、対応するコンテキストがまだロードされていない場合にアプリケーションコンテキストをロードし、場合によってはコンテキストもキャッシュします。
null
)IllegalStateExceptionSE
- アプリケーションコンテキストの取得中にエラーが発生した場合 hasApplicationContext()
default void publishEvent(FunctionSE<TestContext,? extends ApplicationEvent> eventFactory)
eventFactory
によって作成された ApplicationEvent
を、このテストコンテキストのアプリケーションコンテキストに発行します。ApplicationEvent
は、このテストコンテキストのアプリケーションコンテキストが使用可能な場合にのみ公開されます。
eventFactory
- ApplicationEvent
の遅延作成のためのファクトリ hasApplicationContext()
, getApplicationContext()
ObjectSE getTestInstance()
メモ: これは変更可能なプロパティです。
null
)updateState(Object, Method, Throwable)
MethodSE getTestMethod()
メモ: これは変更可能なプロパティです。
null
)updateState(Object, Method, Throwable)
@Nullable ThrowableSE getTestException()
null
updateState(Object, Method, Throwable)
void markApplicationContextDirty(@Nullable DirtiesContext.HierarchyMode hierarchyMode)
テストでコンテキストが変更された場合は、これを行います。たとえば、シングルトン Bean の状態の変更、組み込みデータベースの状態の変更など。
hierarchyMode
- コンテキストが階層の一部である場合に適用されるコンテキストキャッシュのクリアモード (null
の場合があります)void updateState(@Nullable ObjectSE testInstance, @Nullable MethodSE testMethod, @Nullable ThrowableSE testException)
警告 : このメソッドは TestContextManager
によってのみ呼び出されます。
注意: このメソッドの同時呼び出しは、基盤となる実装によっては、スレッドセーフではない場合があります。
testInstance
- 現在のテストインスタンス (null
の場合があります)testMethod
- 現在のテストメソッド (null
の場合があります)testException
- テストメソッドでスローされた例外、または例外がスローされなかった場合は null