본문 바로가기

junit

[TestCode] Mock 객체 만들기 Mockito (JUnit5) - 사용이유 : 테스트 코드에서 객체 생성시 Mokito를 활용하여 임의로 생성해주어 번거로움을 줄일 수 있다. Mockito.mock() 메소드를 활용하여 만드는 법 @Test void createLunchService() { // mock() 메소드로 만드는 방법 LunchRepository lunchRepository = mock(LunchRepository.class); LunchService lunchService = new LunchService(lunchRepository); assertNotNull(lunchService); } - Mockito가 없다면 위 객체를 만들어주는데 필요한 구현체를 모두 구현해 줘야하기때문에 장황한 코드가 발생하지만 Mockito를 활용하여 위처럼 짧고 간결하게.. 더보기
[TestCode] @TransInstance 테스트 인스턴스 (JUnit5) - Junit은 테스트 메소드 마다 테스트 인스턴스를 새로 만든다. - 테스트 메소드를 독립적으로 실행하여 예상치 못한 부작용을 방지하기 위해서 @custom @DisplayName("테스트 인스턴스") void instance_ex() { System.out.println("value test1 = " + value++); System.out.println("instance test1 = " + this); } @custom @DisplayName("테스트 인스턴스2") void instance2_ex() { System.out.println("value test2 = " + value++); System.out.println("instance test1 = " + this); } - 실제로 위 코드를.. 더보기
[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] @Tag 태깅과 필터링 (JUnit5) @Tag : 테스트 메소드에 여러 태그를 추가할 수 있다. @Test @DisplayName("태깅 그룹 local") @Tag("local") void tag_local_ex() { Lunch lunch = new Lunch(); assertTrue(lunch.getLunch("test").equals("Complete")); } @Test @DisplayName("태깅 그룹 dev") @Tag("dev") void tag_dev_ex() { Lunch lunch = new Lunch(); assertTrue(lunch.getLunch("test").equals("Complete")); } - 위처럼 코드 구성시 local, dev라는 2개의 태그로 나뉘게 된다. - 그대로 실행시에는 두 태그에 해당하.. 더보기