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 はこのクラスを継承して作成することで、共通する部分の処理を省略できる。
- Author:
- Tanaka Tomoyuki
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected nablarch.test.event.TestEventDispatcherExtension が生成しテストクラスにインジェクションする、サポートクラスのインスタンス。 -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidafterAll(org.junit.jupiter.api.extension.ExtensionContext context) voidafterEach(org.junit.jupiter.api.extension.ExtensionContext context) テストメソッドの後処理を実行する。voidbeforeAll(org.junit.jupiter.api.extension.ExtensionContext context) voidbeforeEach(org.junit.jupiter.api.extension.ExtensionContext context) テストメソッドの前処理を実行する。protected abstract nablarch.test.event.TestEventDispatchercreateSupport(Object testInstance, org.junit.jupiter.api.extension.ExtensionContext context) テストインスタンスにインジェクションするサポートクラスのインスタンスを生成する。protected <A extends Annotation>
AfindAnnotation(Object testInstance, Class<A> annotationClass) 指定されたテストインスタンスのクラスに設定されたアノテーションを取得する。voidpostProcessTestInstance(Object testInstance, org.junit.jupiter.api.extension.ExtensionContext context) protected List<org.junit.rules.TestRule>テストに対して適用する JUnit 4 のTestRuleのリストを取得する。
-
Field Details
-
support
protected nablarch.test.event.TestEventDispatcher supportExtension が生成しテストクラスにインジェクションする、サポートクラスのインスタンス。このフィールドは、
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:
postProcessTestInstancein interfaceorg.junit.jupiter.api.extension.TestInstancePostProcessor- Throws:
Exception
-
createSupport
protected abstract nablarch.test.event.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:
beforeAllin interfaceorg.junit.jupiter.api.extension.BeforeAllCallback
-
beforeEach
テストメソッドの前処理を実行する。- Specified by:
beforeEachin 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:
afterEachin interfaceorg.junit.jupiter.api.extension.AfterEachCallback- Parameters:
context- コンテキスト- Throws:
Exception- 例外がスローされた場合
-
afterAll
public void afterAll(org.junit.jupiter.api.extension.ExtensionContext context) - Specified by:
afterAllin interfaceorg.junit.jupiter.api.extension.AfterAllCallback
-
findAnnotation
指定されたテストインスタンスのクラスに設定されたアノテーションを取得する。- Type Parameters:
A- アノテーションの型- Parameters:
testInstance- テストインスタンス(null不可)annotationClass- 取得するアノテーションの型- Returns:
- テストクラスに設定されたアノテーション
-