반응형
@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 |