우리가 일반적으로 Junit을 통해 테스트를 진행하고자 할 때, 각각의 메서드의 순서를 정해주고 싶을 때가 있을 것입니다.
그 떄 @TestInstance(Lifecycle.PER_CLASS)와 @TestMethodOrder를 동시에 사용한다면 순서 지정이 가능합니다.
public class HelloJUnitTest {
@Test
public void four() {
System.out.println("네번째 테스트였으면 좋겠습니다.");
}
@Test
public void first() {
System.out.println("첫번째 테스트였으면 좋겠습니다.");
}
@Test
public void third() {
System.out.println("세번째 테스트였으면 좋겠습니다.");
}
@Test
public void second() {
System.out.println("두번째 테스트였으면 좋겠습니다.");
}
}
위 같이 아무런 에너테이션 없이 실행했을 때 결과는 다음과 같이 순서가 뒤죽박죽인 것을 확인할 수 있습니다.
[결과]
이럴때 순서를 정해주기 위해서 사용하는 것이
@TestInstance(Lifecycle.PER_CLASS)와 @TestMethodOrder 에너테이션을 함께 사용하는 것입니다.
각각의 테스트 케이스인 메서드 위에는 @Order()을 통해 지정합니다. 안에 들어가는 값이 작을수록 먼저 출력된다고 이해하면 편할 것 같습니다.
import org.junit.jupiter.api.*;
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
public class OrderTest {
@Test
@Order(4)
public void four() {
System.out.println("네번째 테스트였으면 좋겠습니다.");
}
@Test
@Order(1)
public void first() {
System.out.println("첫번째 테스트였으면 좋겠습니다.");
}
@Test
@Order(3)
public void third() {
System.out.println("세번째 테스트였으면 좋겠습니다.");
}
@Test
@Order(2)
public void second() {
System.out.println("두번째 테스트였으면 좋겠습니다.");
}
}
[결과]
'JAVA > Test' 카테고리의 다른 글
[자바 Spring] 단위 테스트, 슬라이스 테스트 등 테스트의 기초에 대해 알아보자 (0) | 2022.07.17 |
---|---|
[자바 Spring] 가독성 좋은 테스팅 기법 Hamcrest의 기초 사용 방법 (0) | 2022.07.16 |