본문 바로가기

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(); asse.. 더보기
[TestCode] assume 조건에 따라 테스트 실행 (JUnit5) assumeTrue : 조건 - 조건을 정해주고 해당조건에 적합한지 체크한다. @Test @DisplayName("조건에 맞춰 실행") void assume_ex() { Lunch lunch = new Lunch(); String test_env = "LOCAL"; assumeTrue("LOCAL".equals(test_env)); assertTrue(lunch.getLunch("test").equals("Complete"), () -> "실패시 메시지"); } - 현재 테스트 하는 환경을 예로 들어 LOCAL환경인지 개발환경인지 실서버 환경인지 여부를 체크하여 다음에 실행될 테스트 코드를 실행할지 여부를 정할 수 있다. 만일 위 코드에서 LOCAL 환경이 아니라면 다음 테스트는 실행되지 않을것이다. -.. 더보기
[TestCode] @DisplayName 테스트 이름표시법 (JUnit5) 기본표기 : 실행되는 메서드의 명칭이 출력됨 @MockMvcTest public class HomeControllerTest { @Autowired private MockMvc mockMvc; @Test public void home_view() throws Exception{ mockMvc.perform(get("/")) .andDo(print()) .andExpect(status().isOk()) .andExpect(view().name("index.html")); } } - 보통 위처럼 메서드는 가독성을 위해서 언더스코어 규칙에 따라 주로 작성한다 @DisplayNameGeneration : 언더스코어를 공백으로 치환시켜 출력시켜줌 @MockMvcTest @DisplayNameGeneration(D.. 더보기
[TestCode] Test, Before, After, Disabled (JUnit5) JUnit 5 : 단위 테스트를 하는 자바개발자의 93%가 사용하는 자바 테스팅 프레임워크 - Java 8 버전 이상을 지원함 - Junifer : TestEngine Api 구현체, JUnit 5를 지원함 - Vintage : TestEngine Api 구현체, JUnit 4, 3를 지원함 @Test : 테스트 할 메소드를 지정하는 어노테이션 @Test void create() { Study study = new Study(); System.out.println("create"); } @BeforeAll : 모든 테스트가 실행되기 전 실행될 메소드를 지정 ( static으로 선언되어야 한다 ) @BeforeAll static void beforeAll() { System.out.println("befo.. 더보기