본문 바로가기

Language/Java(TestCode)

[TestCode] @interface 커스텀 태그 (JUnit5)

Junit5 애노테이션을 조합하여 커스텀 태그를 만들 수 있다.

@Target(ElementType.METHOD) // 메서드에 사용이 가능하다.
@Retention(RetentionPolicy.RUNTIME) // 애노테이션 정보를 런타임 까지 유지되도록
@Tag("local") // 태그가 local 환경이다.
@Test
public @interface custom {
}

- 커스텀태그를 위와 같이 생성하였다.  

- 위처럼 태그생성 후 테스트 코드 메서드에 이 애노테이션을 사용할 수 있다.

	@custom // @Test , Tag("local") 어노테이션 생략가능 
    @DisplayName("커스텀 태그")
    void custom_tag_ex() {
        Lunch lunch = new Lunch();
        assertTrue(lunch.getLunch("test").equals("Complete"));
    }

- 위처럼 사용시에 크게 두 가지 장점이 있다.

 

1. 타입 세이프하게 오타를 줄일 수 있다. @Tag 어노테이션 생성시 태그명을 문자열로 넣어주는데 이때 오타가 발생할 수 있지만 커스텀 태그 사용시 동일한 태그를 사용한다고 보장할 수 있다.

2. 특정 애노테이션을 생략할 수 있다. Test, Tag등 테스트 메서드를 생성할 때마다 필수적으로 사용해 줘야하는 어노테이션을 생략할 수 있다.