강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

노원호님의 프로필 이미지
노원호

작성한 질문수

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

스프링 통합 테스트

통합테스트와 단위테스트 내용중에서

작성

·

828

1

[질문내용]

데이터베이스를 관련 코드를 테스트하면 테스트 코드 실행시에도 스프링이 올라가야해서 항상 통합테스트인건가요?

 

단위테스트는 그럼 데이터베이스가 관여되지 않는 부분들을 단위별로 쪼개서 테스트하는것을 의미하고

데이터베이스가 연동 되는 순간 스프링이 올라가므로 통합테스트가 되어버리는건가요?

보통 단위테스트가 더 좋다고 강의에서 말씀해주셨는데

그럼 데이터베이스를 연동한 테스트는 단위 테스트와 다르게 항상 스프링이 올라가야하므로 효율적인 측면에서 좋은 테스트가 아니게되는건가요?

답변 1

2

안녕하세요. 스니커즈님, 공식 서포터즈 David입니다.

네, 전반적으로 이해하고 계신 부분이 맞습니다.

스프링 프레임워크를 포함하는 여러 모듈 간 상호작용에 의해 검증되어야 하는 부분은 통합테스트로 볼 수 있습니다.

그러나 매번 모든 모듈을 띄워서 통합테스트를 수행하는 것이 속도 측면에서도 부담스러울 수 있기 때문에 특정 레이어와 관련된 것들만 불러와서 테스트 하는 형태의 '슬라이스 테스트'도 있으니 참고해주세요.

https://tecoble.techcourse.co.kr/post/2021-05-25-unit-test-vs-integration-test-vs-acceptance-test/

스프링부트에서는 슬라이스 테스트를 위해 @DataJpaTest 애노테이션 같은 것들을 지원합니다.

감사합니다.

노원호님의 프로필 이미지
노원호

작성한 질문수

질문하기