[JUnit 5]テスト言語


JUnit 5の基本操作について
匿名とは?
歴史的に見ると、声明は注釈の意味です.しかしjavaで用いられる構文概念は,コード間で注釈のように用いられ,特殊な意味と機能を同時に実行する技術である.
→プログラムに追加情報を提供するメタデータ(データ)と考えられる.
→要約すると「特別な意味を持つ注釈」です.
@Test
説明:@Testを貼り付ける場合は、Testメソッドを使用して認識とテストを行います.
@Test
void create1() {
    Study study = new Study();
    System.out.println("create1. study");
}
実行画面

@BeforeAll
@Beforeメソッドは、クラスのすべてのテストクラスを初期化するときに一度だけ実行するメソッドです.
→テストクラス実行時に一度だけ出力
このメソッドは静的として宣言する必要があります.
コード#コード#
@Test
    void create1() {
        Study study = new Study();
        System.out.println("create1. study");
    }

@BeforeAll
    static void beforeAll() {
        System.out.println("BeforeAll");
    }
実行画面:まずBeforeAllを出力し、1を作成します.研究が出力されていることがわかります.

@Disabled
@Disabledを貼り付けると、@Testは無視されます.
@Test
    void create1() {
        Study study = new Study();
        System.out.println("create1. study");
    }

    @BeforeAll
    static void beforeAll() {
        System.out.println("BeforeAll");
    }

    @Test
    void Disabled() {
        System.out.println("Disabled");
    }
もしそうなら.
BeforeAll
Disabled
create1. study
の順に出力します.でも.
@Test
    void create1() {
        Study study = new Study();
        System.out.println("create1. study");
    }

    @BeforeAll
    static void beforeAll() {
        System.out.println("BeforeAll");
    }

		**@Disabled**
    @Test
    void Disabled() {
        System.out.println("Disabled");
    }
@Disabledを追加します.

以上のように、無効にして出力できません.→テストコードを実行していないため
@BeforeEach
@BeforeEachすべてのテストメソッドを実行する前に実行するメソッド
コード#コード#
	  @Test
    void create1() {
        Study study = new Study();
        System.out.println("create1. study");
    }

    @Test
    void create2() {
        Study study = new Study();
        System.out.println("create2. study");
    }

    @BeforeAll
    static void beforeAll() {
        System.out.println("BeforeAll");
    }

    **@BeforeEach
    void beforeEach() {
        System.out.println("BeforeEach");
    }**
実行画面

各テストが実行される前にbeforeEachが実行されていることがわかります.
BeforeAllとは異なり、BeforeAllは完全なテストを実行するときに1回のみ実行され、BeforeAchはテストクラスごとに1回実行されます.
@AfterAll
@AfterAllを貼り付けたメソッドは、テストクラスですべてのメソッドを実行した後に一度だけ実行されます.
→テスト後最後に出力
	  @Test
    void create1() {
        Study study = new Study();
        System.out.println("create1. study");
    }

    @Test
    void create2() {
        Study study = new Study();
        System.out.println("create2. study");
    }

		**@AfterAll
		    static void afterAll() {
		        System.out.println("AfterAll");
		    }**
実行画面

@AfterEach
テストメソッドを実行した後に実行します.
一度だけ実行する@AfterAllとは異なり、実行ごとに出力されます
import org.junit.jupiter.api.*;

class StudyTest {

    @Test
    void create1() {
        Study study = new Study();
        System.out.println("create1. study");
    }

    @Test
    void create2() {
        Study study = new Study();
        System.out.println("create2. study");
    }

        @AfterAll
    static void afterAll() {
        System.out.println("AfterAll");
    }
    
    @AfterEach
    void afterEach() {
        System.out.println("AfterEach");
    }
}
実行画面

完全なコード
import org.junit.jupiter.api.*;

class StudyTest {

    @Test
    void create1() {
        Study study = new Study();
      
        System.out.println("create1. study");
    }

    @Test
    void create2() {
        System.out.println("create2(), study");
    }

    @Disabled
    @Test
    void Disable() {
        System.out.println("Disabled");
    }

    @BeforeAll
    static void beforeAll() {
        System.out.println("BeforeAll");
    }

    @AfterAll
    static void afterAll() {
        System.out.println("AfterAll");
    }

    @BeforeEach
    void beforeEach() {
        System.out.println("BeforeEach");
    }

    @AfterEach
    void afterEach() {
        System.out.println("AfterEach");
    }
}