728x90
반응형
목차는 테스트 & 리팩토링 목차 에 있습니다.
[테스트 & 리팩토링 2편] Junit4, Junit5 정리
JUnit4, JUnit5 개념
- JUnit 은 테스트 컴포넌트입니다.
- JUnit4 의 업그레이드 버전이 JUnit5 입니다.
- JUnit4 가 단일 Jar 를 사용한 것에 반해 JUnit5 는 3가지 모듈로 구성돼있습니다.
- JUnit 플랫폼 + 주피터 + Vintage
- 여기서 알아둘만한 것은 Vintage 모듈을 통해 JUnit5 이전 버전 소스도 JUnit5 에서 동작이 가능합니다.
JUnit4, JUnit5 혼용 시 문제점
- junit4 의 경우 vintage 가 발견해서 실행을 시킵니다.
- junit5 의 경우 jupiter 가 발견해서 실행을 시킵니다.
- 이 2개 동작은 독립적으로 수행되며, 아래 예시를 보면 Before annotation 은 Junit4 의 annotation 입니다.
- junit5_테스트() 메소드에서는 setUp 이 동작되지 않습니다. junit4_테스트() 에서만 setUp 이 동작합니다.
- 그렇기에 2개를 혼용해서 사용하면 예측하지 못한 동작이 발생할 수 있습니다.
public class 혼용테스트 {
@Before
public void setUp() {
...
...
...
}
@org.junit.jupiter.api.Test
public void junit5_테스트() {
}
@org.junit.Test
public void junit4_테스트 {
}
}
결론
- Junit4, Junit5 를 한 클래스 내에서 섞어서 쓰지말아야 합니다.
- Junit4, Junit5 중 하나를 선택해서 사용하는게 좋으며, 혼용해서 사용하고 싶다면 Junit4, Junit5 각각 별개 클래스에 구현해야 합니다.
refernce
'test & refactoring' 카테고리의 다른 글
[테스트 및 리팩토링 7편] TestContainer Example (0) | 2023.04.22 |
---|---|
[테스트 & 리팩토링 6편] 팩토리 패턴 if else 줄이기 (map, functional interface 사용) (2) | 2022.08.01 |
[테스트 & 리팩토링 4편] github pull request template 및 CodeReview 정리 (0) | 2022.06.27 |
[테스트 & 리팩토링 3편] package layer, package import 정리 (0) | 2022.06.27 |
[테스트 & 리팩토링 1편] 외부 연동 코드를 테스트 하는 방법 (0) | 2022.03.24 |
댓글