@RunWith를 사용할 때와 @ExtendWith를 사용할 때
저희 팀과 저는 스프링 부츠를 사용하여 많은 마이크로 서비스를 수행해 왔습니다.서비스가 JUnit 및 Spring Boot 업그레이드를 거쳤기 때문에(현재는 Spring Boot 2 및 JUnit 5를 사용하고 있습니다), 현재 다른 개발사가 구현한 JUnit은 다음과 같은 다양한 패턴을 사용하고 있습니다.
- @Extend With
- @RunWith
현재 이 두 제품의 차이점은 무엇입니까?유닛 테스트에 이 제품이 꼭 필요한가요?아니면 새로운 스프링 부트 주석에도 포함되어 있는 건가요?
Junit 버전 <5 를 사용하고 있는 경우는,@RunWith(SpringRunner.class)또는@RunWith(MockitoJUnitRunner.class)기타.
Junit 버전 = 5를 사용 중이므로 다음을 사용해야 합니다.@ExtendWith(SpringExtension.class)또는@ExtendWith(MockitoExtension.class)기타.
정답은 다음 문서에서 찾을 수 있습니다.
JUnit 4를 사용하는 경우 테스트에 @RunWith(SpringRunner.class)를 추가하는 것을 잊지 마십시오.그렇지 않으면 주석이 무시됩니다.JUnit 5 를 사용하고 있는 경우는, 동등한 @ExtendWith(SpringExtension.class)를 @SpringBootTest 와 다른 @... 로 추가할 필요가 없습니다.테스트 주석은 이미 주석을 달았습니다.
.
@RunWith는 테스트 러너를 사용하기 위한 JUnit 4의 오래된 주석입니다.JUnit 5(Jupiter)를 사용하는 경우@ExtendWithJUnit 확장자를 사용합니다.
에 의해 도입된 중요한 차이점@ExtendWith다수의 확장자를 같은 테스트로 사용할 수 있도록 할 수 있습니다.이런 건 할 수 있어
@ExtendWith({MockitoExtension.class, LogAsserterExtension.class})
class MyTest
와 함께@RunWithJUnit 4에서 Runner 클래스는 1개만 허용되었고, 예를 들어 Mockito와 Params를 테스트에서 사용하고자 할 때 문제가 있었습니다.MockitoJUnitRunner그리고.JUnitParamsRunner동시에.
언급URL : https://stackoverflow.com/questions/55276555/when-to-use-runwith-and-when-extendwith
'programing' 카테고리의 다른 글
| mysqli 결과를 JSON으로 변환하는 방법 (0) | 2023.03.25 |
|---|---|
| 오류 TS1192: 모듈 'A.module'에 기본 내보내기가 없습니다. (0) | 2023.03.25 |
| Oracle의 "숫자" 함수 확인 (0) | 2023.03.25 |
| Swift에서 HTML 엔티티를 디코딩하려면 어떻게 해야 하나요? (0) | 2023.03.25 |
| application.yml에서 루트 로깅 수준을 설정합니다. (0) | 2023.03.25 |