programing

@RunWith를 사용할 때와 @ExtendWith를 사용할 때

golfzon 2023. 3. 25. 12:04
반응형

@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)기타.

  1. 스프링러너
  2. 모키토 JUNIT Runner
  3. 스프링 익스텐션
  4. 모키토 확장

정답은 다음 문서에서 찾을 수 있습니다.

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

반응형