Spring

Junit 5와 함께 Spring Boot에서 SpringRunner를 사용해야 합니까?

기록만이살길 2022. 12. 8. 23:20
반응형

Junit 5와 함께 Spring Boot에서 SpringRunner를 사용해야 합니까?

1. 질문(문제점):

SpringRunner 클래스에 대해 혼란스러워합니다. Stackoverflow와 Google은 그것을 이해했으며 SpringRunner하나 SpringJunit4ClassRunner이며 동일합니다.

@RunWith(SpringRunner.class)

이 수업에 대한 나의 이해는 다음과 같습니다.

  • 이름에서 알 수 있듯이 - '러너'입니다(Junit 테스트를 실행함).
  • 이 클래스는 어노테이션으로 단위 테스트를 수행하는 동안 사용됩니다.@RunWith
  • 이 어노테이션은 스프링 애플리케이션 컨텍스트를 로드하는 데 도움이 되며 의존성을 'autowire'하는 데 도움이 됩니다.
  • 이 클래스는 스프링 컨텍스트 빈 의존성이 필요한 경우에만 사용해야 합니다.
  • 따라서 이 클래스는 주의해서 사용해야 합니다. 그렇지 않으면 테스트 중에 불필요하게 스프링 컨텍스트를 로드하게 됩니다.
  • 이 클래스는 Junit과 Spring이 함께 협업하는 데 도움이 됩니다.

Junit5와 스프링 부트를 사용하면 이 클래스가 더 이상 필요하지 않습니까?

그렇다면 스프링 부트와 Junit5 환경에서 무엇을 사용해야 합니까?

2. 해결방안:

참조 문서 에서

JUnit 4를 사용하는 경우 테스트에 @RunWith(SpringRunner.class)도 추가하는 것을 잊지 마십시오. 그렇지 않으면 어노테이션이 무시됩니다. JUnit 5를 사용하는 경우 동등한 @ExtendWith(SpringExtension.class)를 @SpringBootTest로 추가할 필요가 없으며 다른 @…Test 어노테이션에 이미 어노테이션이 달려 있습니다.

반응형