반응형
@RunWith
  •  프레임워크의 테스트 실행 방법을 확장할 때 사용하는 annotation
  • default : JUnit에 내장된 BlockJUnit4ClassRunner.class

 

@RunWith(PowerMockRunner.class)
@PrepareForTest({RestTemplate.class, AvatarApi.class})
  • final, static, private method/constructor를 mock하게 해주는 테스팅 Runner
  • @PrepareForTest 에는 mock되어야 하는 클래스 선언
  • static method를 가진 class를 mock 할 경우, mockStatic() 사용
  • 미리 클래스 파일을 조작하고 디스크에 저장한 뒤 이 클래스 파일을 런타임에서 사용하는 방식(Javaasist)

참고) powerMock을 사용하면 jacoco test coverage가 먹지 않는다.

 
@RunWith(MockitoJUnitRunner.class)
  • Mockito를 사용하여 mock객체를 주입받아 테스트하기 위해 @Mock, @InjectMocks, @Spy 등을 제공하는 테스팅 Runner
  • spring 관련 설정이 필요 없음

 

@RunWith(SpringJUnit4ClassRunner.class) 
= @RunWith(SpringRunner.class)
  • 테스트환경에서 @Autowired를 통해 Bean을 주입받을 수 있는 Spring Application Context를 제공하는 테스팅 Runner
  • spring 설정 참조가 필요한 클래스의 단위 테스트 시 사용
    • 테스트용 별도 프로퍼티 사용이 필요한 테스트 작성 시
  • 통합테스트 시 사용
    • 컨트롤러부터 api/repository까지 흐름 테스트 시
    • 테스트용 설정 파일 필요

@RunWith(Suite.class) 
@SuiteClasses({ 
  NoticeBOImplTest.class, 
  NoticeMasterDAOImplTest.class, 
  WCMSNoticeDAOTest.class, 
  HBBSNoticeDAOTest.class 
})
  • 여러 클래스가 한 번에 테스트 되어야 할 때 사용
  • @Suite 는 테스트 하고자 하는 클래스들을 나열한다. 이 클래스들에 있는 @Test 메서드들을 전부 실행한다.

 

@RunWith(JUnit4.class)

 

Junit 5

https://gmlwjd9405.github.io/2019/11/26/junit5-guide-basic.html

주의사항: junit4와 import package가 다르니 주의해야한다!

import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
  • @Before -> BeforeAll, BeforeEach 로 해야하고, 반드시 static으로 선언해야한다.
728x90
반응형

'개발 > java' 카테고리의 다른 글

[jmh] benchmark test  (0) 2022.08.04
[powermock] mock static method  (0) 2022.07.21
[java] jvm, java, gc  (0) 2022.02.24
[keyword] transient in serialization  (0) 2022.02.16
[junit5] no test found / checked exception is invalid  (0) 2022.02.07

+ Recent posts