BackEnd/JUnit

JUnit 5. 테스트 순서

hanseom 2022. 2. 3. 18:15
반응형

  테스트 인스턴스를 테스트마다 새롭게 생성하기 때문에 테스트 메소드들의 실행 순서는 보장되지 않습니다. 경우에 따라 특정 순서대로 테스트를 실행하고 싶을 때가 존재합니다. 그런 경우 @TestInstance(Lifecycle.PER_CLASS)와 함께 @TestMethodOrder를 사용할 수 있습니다.

  OrderAnnotation은 낮은 값일수록 높은 우선순위를 갖습니다.

package com.java.JUnit5;

import org.junit.jupiter.api.*;

@TestInstance(TestInstance.Lifecycle.PER_CLASS)
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
public class OrderTests {
    int value = 1;

    @Order(3)
    @Test
    void printThree() {
        System.out.println(value++); // [결과]: 3
    }

    @Order(2)
    @Test
    void printTwo() {
        System.out.println(value++); // [결과]: 2
    }

    @Order(1)
    @Test
    void printOne() {
        System.out.println(value++); // [결과]: 1
    }

}
반응형