programing

@스프링 부츠테스트 vs @WebMvcTest & @DataJpaTest & 서비스 유닛 테스트, 가장 좋은 것은 무엇입니까?

iphone6s 2023. 8. 5. 09:58
반응형

@스프링 부츠테스트 vs @WebMvcTest & @DataJpaTest & 서비스 유닛 테스트, 가장 좋은 것은 무엇입니까?

저는 SpringBoot MVC 애플리케이션을 가지고 있는데, 그것을 테스트로 다루고 싶습니다.

컨트롤러, 서비스 및 저장소 계층이 있습니다.

시험으로 지원서를 다루는 가장 좋은 방법은 무엇입니까?

사람들이 사용하는 이유@SpringBootTest그것은 층별로 테스트될 수 있는 것처럼 보이는 반면에.@WebMvcTest&@DataJpaTest그리고 서비스 유닛 테스트?그것은 더 빠르고 더 세분화되어 있습니다, 그렇지 않나요?

AFAIK 시간@SpringBootTest사용되는 것을 통합 테스트라고 하는데, 너무 자주 나타나지 않아야 한다는 뜻입니까?

모든 코드 덩어리는 유닛 테스트가 적용되어야 한다고 생각합니다, 통합도 적용됩니까?또는 통합 테스트는 테스트 환경이 아닌 스테이지 환경에서 작동해야 합니까?

생성해도 (성능 측면에서) 동일하지 않습니까?@SpringBootTest하지만 다른 레이어는 모의? (여러 개를 생성한다고 가정합니다.)@SpringBootTests 및 모의 다른 레이어).

  • @SpringBootTestSpring Boot 응용 프로그램을 실행할 때 Spring 컨테이너를 시작하는 방법과 마찬가지로 전체 응용 프로그램 컨텍스트를 로드합니다.

  • @WebMvcTest요청/응답 처리를 위한 보안, 필터, 인터셉터 등을 포함하는 웹 계층만 로드합니다.일반적으로 다음과 같은 방법에 대한 검정을 작성합니다.@Controller또는@RestController.

  • @DataJpaTestJPA에 대한 구성만 로드합니다.별도로 지정하지 않은 경우 내장 메모리 h2를 사용합니다.

  • 서비스 계층 테스트에는 주석이 없어야 합니다(모킹에 도움이 되는 주석은 제외). 여기에 비즈니스 로직(구성에 관계없이)이 있습니다.

베스트 프랙티스와 관련해서는, 정말로 우려의 분리일 뿐입니다.거의 사용하지 않았습니다.@SpringBootTest내 지역에서 임시 통합 테스트를 위한 것이 아니라면요.다음과 같은 주석@WebMvcTest테스트를 좀 더 '자동화'하고 조금 더 빠르게 유지합니다.

언급URL : https://stackoverflow.com/questions/59097035/springboottest-vs-webmvctest-datajpatest-service-unit-tests-what-is-the-b

반응형