programing

Spring Runner vs Spring Boot시험

css3 2023. 3. 6. 21:21

Spring Runner vs Spring Boot시험

단위 테스트에서, 다음과 같은 차이는 무엇입니까?@Runwith(SpringRunner.class)&@SpringBootTest?

각각의 사용 사례에 대해 설명해 주시겠습니까?

@RunWith(SpringRunner.class) : 이 주석은 다음과 같은 스프링 부트 기능만 활성화하기 위해 필요합니다.@Autowire,@MockBeanJunit 테스트 중 등

는 스프링 부트테스트 기능과 JUnit 사이의 브릿지를 제공하기 위해 사용됩니다.JUnit 테스트에서 스프링 부트 테스트 기능을 사용할 때는 항상 이 주석이 필요합니다.

@Spring Boot테스트 : 이 주석은 엔드 투 엔드 통합 테스트를 위한 완전한 애플리케이션 컨텍스트를 로드하기 위해 사용됩니다.

@Spring Boot테스트 주석은 전체 컨테이너를 부트스트랩해야 할 때 사용할 수 있습니다.주석은 테스트에서 사용되는 Application Context를 작성함으로써 작동합니다.

여기 두 시나리오에 대한 명확한 예가 있는 기사가 있습니다. Balldung

@RunWith는 테스트 러너를 사용하기 위한 JUnit 4의 오래된 주석입니다.JUnit 5(Jupiter)를 사용하는 경우 JUnit 확장을 사용하려면 @ExtendWith를 사용해야 합니다.

https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-testing 를 참조해 주세요.

JUnit 4를 사용하는 경우 테스트에 @RunWith(SpringRunner.class)도 추가해야 합니다.그렇지 않으면 주석이 무시됩니다.JUnit 5를 사용하는 경우 동등한 @ExtendWith(SpringExtension.class)를 @SpringBoot로 추가할 필요가 없습니다.테스트와 다른 하나는 @…테스트 주석에는 이미 주석이 붙어 있습니다.

spring.io 에서 :

@RunWith(SpringRunner.class)는 스프링 테스트 지원을 사용하여 실행하도록 JUnit에 지시합니다. SpringRunner의 새로운 이름입니다.SpringJUnit4ClassRunner조금 더 보기 편할 뿐이에요.

@SpringBootTest가 「스프링 부트의 서포트를 포함한 부트스트랩」이라고 말하고 있다(예: 로드).application.properties스프링 부츠의 좋은 점을 모두 주세요)

따라서 Spring Boot에 로딩된 모든 것이 통합 테스트에 필요하지 않은 경우@SpringBootTest

언급URL : https://stackoverflow.com/questions/58901288/springrunner-vs-springboottest