@Published(tag="architect")
public abstract class TestEventDispatcherExtension
extends java.lang.Object
このクラスは、 TestEventDispatcher
が提供する JUnit 4 用の拡張機能を、
JUnit 5 の Extension の仕組みで再現する。
各 Extension はこのクラスを継承して作成することで、共通する部分の処理を省略できる。
Modifier and Type | Field and Description |
---|---|
protected nablarch.test.event.TestEventDispatcher |
support
Extension が生成しテストクラスにインジェクションする、サポートクラスのインスタンス。
|
Modifier and Type | Method and Description |
---|---|
void |
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 nablarch.test.event.TestEventDispatcher |
createSupport(java.lang.Object testInstance,
org.junit.jupiter.api.extension.ExtensionContext context)
テストインスタンスにインジェクションするサポートクラスのインスタンスを生成する。
|
protected <A> A |
findAnnotation(java.lang.Object testInstance,
java.lang.Class<A> annotationClass)
指定されたテストインスタンスのクラスに設定されたアノテーションを取得する。
|
void |
postProcessTestInstance(java.lang.Object testInstance,
org.junit.jupiter.api.extension.ExtensionContext context) |
protected java.util.List |
resolveTestRules()
テストに対して適用する JUnit 4 の
TestRule のリストを取得する。 |
protected nablarch.test.event.TestEventDispatcher support
このフィールドは、 TestEventDispatcherExtension.postProcessTestInstance(Object, ExtensionContext)
が実行されたときに初期化される。
設定される値は、 TestEventDispatcherExtension.createSupport(Object, ExtensionContext)
が返却したインスタンスが使用される。
public void postProcessTestInstance(java.lang.Object testInstance, org.junit.jupiter.api.extension.ExtensionContext context)
protected abstract nablarch.test.event.TestEventDispatcher createSupport(java.lang.Object testInstance, org.junit.jupiter.api.extension.ExtensionContext context)
testInstance
- テストインスタンスcontext
- コンテキストpublic void beforeAll(org.junit.jupiter.api.extension.ExtensionContext context)
public void beforeEach(org.junit.jupiter.api.extension.ExtensionContext context)
context
- コンテキストjava.lang.Exception
- 例外がスローされた場合protected java.util.List resolveTestRules()
TestRule
のリストを取得する。
JUnit 4 時代に作成した独自のサポートクラスを移植する場合は、
このメソッドをオーバーライドしてサポートクラスで宣言したルールインスタンスを
リストにして返却するように実装する。
オーバーライドした場合は、親クラスが返したリストに追加する形でルールを追加すること。
以下に実装例を示す。
public List<TestRule> resolveTestRules() {
// 親の resolveTestRules() が返したリストをベースにする
List<TestRule> testRules = new ArrayList<>(super.resolveTestRules());
// 独自の TestRule を追加する
testRules.add(((YourSupport)support).yourTestRule);
return testRules;
}
TestRule
のリストpublic void afterEach(org.junit.jupiter.api.extension.ExtensionContext context)
context
- コンテキストjava.lang.Exception
- 例外がスローされた場合public void afterAll(org.junit.jupiter.api.extension.ExtensionContext context)
protected <A> A findAnnotation(java.lang.Object testInstance, java.lang.Class<A> annotationClass)
A
- アノテーションの型testInstance
- テストインスタンス(null不可)annotationClass
- 取得するアノテーションの型