@SpringbootTest vs @Springboot

song yuheon·2023년 9월 20일
0

Spring

목록 보기
72/93
post-thumbnail

@SpringbootTest vs 실제 환경


차이점


  1. 데이터베이스
    테스트 중에는 일반적으로 H2와 같은 인메모리 데이터베이스를 사용하여 실제 데이터베이스를 모방한다.
    이렇게 하면 테스트 실행 시 실제 데이터베이스에 영향을 미치지 않으면서도 데이터베이스와 상호 작용하는 코드를 테스트할 수 있다.

  2. 외부 시스템과의 통합
    테스트 환경에서는 실제 환경에서처럼 외부 시스템과의 통합이 일어나지 않는다.
    대신 모킹(mocking) 또는 스텁(stubbing)을 사용하여 외부 시스템을 모방할 수 있다.

  3. 프로파일
    Spring은 다양한 환경에 대해 서로 다른 구성을 제공하는 프로파일 기능을 제공한다.
    테스트 시에는 특별한 "테스트" 프로파일을 사용하여 실제 환경과는 다른 구성을 사용할 수 있다.


고려 사항


  1. 테스트 속도
    @SpringBootTest를 사용하면 전체 애플리케이션 컨텍스트를 로드해야 하므로 테스트가 느려질 수 있다.
  2. 리소스 사용
    전체 애플리케이션 컨텍스트를 로드하면 테스트 중에 더 많은 리소스 (메모리, CPU 시간 등)가 사용된다.

Plus


테스트 속도를 높이려면, 가능한 경우 슬라이스 테스트를 사용하여 애플리케이션의 특정 부분만 테스트하는 것이 좋다.
예를 들어, @WebMvcTest를 사용하여 MVC 레이어만 테스트하거나, @DataJpaTest를 사용하여 JPA 레이어만 테스트할 수 있다.


profile
backend_Devloper

0개의 댓글