Junit5 태깅 및 필터링에 대해서 알아보도록 하겠습니다.
이 글은 백기선님 더 자바, 애플리케이션을 테스트하는 다양한 방법을 정리한 글입니다.
더 자바, 애플리케이션을 테스트하는 다양한 방법
더 자바, 애플리케이션을 테스트하는 다양한 방법 - 인프런 | 강의
자바 프로그래밍 언어를 사용하고 있거나 공부하고 있는 학생 또는 개발자라면 반드시 알아야 하는 애플리케이션을 테스트하는 다양한 방법을 학습합니다., 그냥 개발자를 넘어 '더 나은 개발
www.inflearn.com
@Tag
테스트 메서드나 클래스를 그룹화하고 필터링하는 데 사용하는 어노테이션입니다.
@Tag는 파라미터에 태그 이름을 넣어 태그를 그룹화할 수 있습니다.
public class TaggingFilteringTest{
@Test
@Tag("fast")
@DisplayName("Tagging Fast 테스트")
void taggingFastTest() {
System.out.println("fast");
}
@Test
@Tag("slow")
@DisplayName("Tagging Slow 테스트")
void taggingSlowTest() {
System.out.println("slow");
}
@FateTest
@DisplayName("커스텀 태그 테스트")
void customTagTest() {
System.out.println("custom tag test");
}
}
메서드 및 클래스에 태그를 걸어 태깅할 수 있고
Run/Debug Configuration에서 태깅되어 있는 것 중에서 그룹 된 것만 필터링해서 실행 가능합니다.
그리고 @Tag는 커스텀 애노테이션을 만들어 보다 편리하게 사용 할 수 있습니다.
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
@Tag("fast")
@Test
public @interface FateTest {
}
런타임에 실행하고 메소드에 달 수 있도록 만들어 두었습니다.
진행하면서 의문이였던 점은 항상 커스텀 태그가 다른 태그들보다 먼저 실행되는 것이었습니다.
인터넷에 찾아보았지만 관련 레퍼런스는 찾지 못했고 아마 예상하기로는 Bean도 수동 빈이 먼저 등록되는 것처럼
커스텀 애노테이션이 먼저 실행되는 것이 아닌가 생각하고 있습니다.
(왜 먼저 실행되는지 이유를 찾으면 수정 하도록 하겠습니다.)
여기까지 태그에 대해서 알아보았습니다. 테스트를 그룹화하고 필터링할 수 있다는 점에서 TDD 할 때 보다 편리하게 할 수 있다는 장점이 있는 것 같습니다.
감사합니다.
GitHub - kibongcoders/junit5
Contribute to kibongcoders/junit5 development by creating an account on GitHub.
github.com
출처 :
더 자바, 애플리케이션을 테스트하는 다양한 방법
더 자바, 애플리케이션을 테스트하는 다양한 방법 - 인프런 | 강의
자바 프로그래밍 언어를 사용하고 있거나 공부하고 있는 학생 또는 개발자라면 반드시 알아야 하는 애플리케이션을 테스트하는 다양한 방법을 학습합니다., 그냥 개발자를 넘어 '더 나은 개발
www.inflearn.com
'Java > 더 자바, 애플리케이션을 테스트하는 다양한 방법' 카테고리의 다른 글
Junit5 테스트 인스턴스, 테스트 순서 (0) | 2023.09.12 |
---|---|
Junit5 테스트 반복하기 (0) | 2023.09.12 |
Junit5 조건에 따라 테스트 실행하기 (0) | 2023.09.11 |
Junit5 Assertion (0) | 2023.09.08 |
Junit5, 시작하기 (0) | 2023.09.08 |