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

    Fields
    Modifier and Type
    Field
    Description
    protected nablarch.test.event.TestEventDispatcher
    Extension が生成しテストクラスにインジェクションする、サポートクラスのインスタンス。
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    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(Object testInstance, org.junit.jupiter.api.extension.ExtensionContext context)
    テストインスタンスにインジェクションするサポートクラスのインスタンスを生成する。
    protected <A extends Annotation>
    A
    findAnnotation(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 のリストを取得する。

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

  • 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 interface org.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:
      beforeAll in interface org.junit.jupiter.api.extension.BeforeAllCallback
    • beforeEach

      public void beforeEach(org.junit.jupiter.api.extension.ExtensionContext context) throws Exception
      テストメソッドの前処理を実行する。
      Specified by:
      beforeEach in interface org.junit.jupiter.api.extension.BeforeEachCallback
      Parameters:
      context - コンテキスト
      Throws:
      Exception - 例外がスローされた場合
    • resolveTestRules

      protected List<org.junit.rules.TestRule> 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

      public void afterEach(org.junit.jupiter.api.extension.ExtensionContext context) throws Exception
      テストメソッドの後処理を実行する。
      Specified by:
      afterEach in interface org.junit.jupiter.api.extension.AfterEachCallback
      Parameters:
      context - コンテキスト
      Throws:
      Exception - 例外がスローされた場合
    • afterAll

      public void afterAll(org.junit.jupiter.api.extension.ExtensionContext context)
      Specified by:
      afterAll in interface org.junit.jupiter.api.extension.AfterAllCallback
    • findAnnotation

      protected <A extends Annotation> A findAnnotation(Object testInstance, Class<A> annotationClass)
      指定されたテストインスタンスのクラスに設定されたアノテーションを取得する。
      Type Parameters:
      A - アノテーションの型
      Parameters:
      testInstance - テストインスタンス(null不可)
      annotationClass - 取得するアノテーションの型
      Returns:
      テストクラスに設定されたアノテーション