Class TestEventDispatcherExtension
java.lang.Object
nablarch.test.junit5.extension.event.TestEventDispatcherExtension
- All Implemented Interfaces:
org.junit.jupiter.api.extension.AfterAllCallback
,org.junit.jupiter.api.extension.AfterEachCallback
,org.junit.jupiter.api.extension.BeforeAllCallback
,org.junit.jupiter.api.extension.BeforeEachCallback
,org.junit.jupiter.api.extension.Extension
,org.junit.jupiter.api.extension.TestInstancePostProcessor
- Direct Known Subclasses:
BasicHttpRequestTestExtension
,BatchRequestTestExtension
,DbAccessTestExtension
,EntityTestExtension
,HttpRequestTestExtension
,IntegrationTestExtension
,MessagingRequestTestExtension
,SimpleRestTestExtension
,TestSupportExtension
@Published(tag="architect")
public abstract class TestEventDispatcherExtension
extends Object
implements org.junit.jupiter.api.extension.TestInstancePostProcessor, org.junit.jupiter.api.extension.BeforeAllCallback, org.junit.jupiter.api.extension.AfterAllCallback, org.junit.jupiter.api.extension.BeforeEachCallback, org.junit.jupiter.api.extension.AfterEachCallback
NTF の JUnit 5 用 Extension の基底となる抽象クラス。
このクラスは、 TestEventDispatcher
が提供する JUnit 4 用の拡張機能を、
JUnit 5 の Extension の仕組みで再現する。
各 Extension はこのクラスを継承して作成することで、共通する部分の処理を省略できる。
-
Field Summary
Modifier and TypeFieldDescriptionprotected TestEventDispatcher
Extension が生成しテストクラスにインジェクションする、サポートクラスのインスタンス。 -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
afterAll
(org.junit.jupiter.api.extension.ExtensionContext context) void
afterEach
(org.junit.jupiter.api.extension.ExtensionContext context) テストメソッドの後処理を実行する。void
beforeAll
(org.junit.jupiter.api.extension.ExtensionContext context) void
beforeEach
(org.junit.jupiter.api.extension.ExtensionContext context) テストメソッドの前処理を実行する。protected abstract TestEventDispatcher
createSupport
(Object testInstance, org.junit.jupiter.api.extension.ExtensionContext context) テストインスタンスにインジェクションするサポートクラスのインスタンスを生成する。protected <A extends Annotation>
AfindAnnotation
(Object testInstance, Class<A> annotationClass) 指定されたテストインスタンスのクラスに設定されたアノテーションを取得する。void
postProcessTestInstance
(Object testInstance, org.junit.jupiter.api.extension.ExtensionContext context) protected List<org.junit.rules.TestRule>
テストに対して適用する JUnit 4 のTestRule
のリストを取得する。
-
Field Details
-
support
Extension が生成しテストクラスにインジェクションする、サポートクラスのインスタンス。このフィールドは、
postProcessTestInstance(Object, ExtensionContext)
が実行されたときに初期化される。 設定される値は、createSupport(Object, ExtensionContext)
が返却したインスタンスが使用される。
-
-
Constructor Details
-
TestEventDispatcherExtension
public TestEventDispatcherExtension()
-
-
Method Details
-
postProcessTestInstance
public void postProcessTestInstance(Object testInstance, org.junit.jupiter.api.extension.ExtensionContext context) throws Exception - Specified by:
postProcessTestInstance
in interfaceorg.junit.jupiter.api.extension.TestInstancePostProcessor
- Throws:
Exception
-
createSupport
protected abstract TestEventDispatcher createSupport(Object testInstance, org.junit.jupiter.api.extension.ExtensionContext context) テストインスタンスにインジェクションするサポートクラスのインスタンスを生成する。- Parameters:
testInstance
- テストインスタンスcontext
- コンテキスト- Returns:
- サポートクラスのインスタンス
-
beforeAll
public void beforeAll(org.junit.jupiter.api.extension.ExtensionContext context) - Specified by:
beforeAll
in interfaceorg.junit.jupiter.api.extension.BeforeAllCallback
-
beforeEach
テストメソッドの前処理を実行する。- Specified by:
beforeEach
in interfaceorg.junit.jupiter.api.extension.BeforeEachCallback
- Parameters:
context
- コンテキスト- Throws:
Exception
- 例外がスローされた場合
-
resolveTestRules
テストに対して適用する JUnit 4 のTestRule
のリストを取得する。JUnit 4 時代に作成した独自のサポートクラスを移植する場合は、 このメソッドをオーバーライドしてサポートクラスで宣言したルールインスタンスを リストにして返却するように実装する。
オーバーライドした場合は、親クラスが返したリストに追加する形でルールを追加すること。 以下に実装例を示す。public List<TestRule> resolveTestRules() { // 親の resolveTestRules() が返したリストをベースにする List<TestRule> testRules = new ArrayList<>(super.resolveTestRules()); // 独自の TestRule を追加する testRules.add(((YourSupport)support).yourTestRule); return testRules; }
- Returns:
- テストに適用したい JUnit 4 の
TestRule
のリスト
-
afterEach
テストメソッドの後処理を実行する。- Specified by:
afterEach
in interfaceorg.junit.jupiter.api.extension.AfterEachCallback
- Parameters:
context
- コンテキスト- Throws:
Exception
- 例外がスローされた場合
-
afterAll
public void afterAll(org.junit.jupiter.api.extension.ExtensionContext context) - Specified by:
afterAll
in interfaceorg.junit.jupiter.api.extension.AfterAllCallback
-
findAnnotation
指定されたテストインスタンスのクラスに設定されたアノテーションを取得する。- Type Parameters:
A
- アノテーションの型- Parameters:
testInstance
- テストインスタンス(null不可)annotationClass
- 取得するアノテーションの型- Returns:
- テストクラスに設定されたアノテーション
-