오직 JPA 컴포넌트 테스트 위한 어노테이션
AppliationContext에 JPA에 필요한 설정만 등록.
따로 지정하지 않으면 in-memory embedded db 사용.
Component Scan 하지 않음! 컨테이너에 @Component Bean 등록 X
@Component 어노테이션 붙은 클래스 사용해야 한다면 @SpringBootTest 활용.
컨트롤러, 서비스 테스트 등.
@DataJpaTest 가 당연히 더 빠름. (@Component Bean 등록하지 않기 때문에)
@Conponent Bean 활용하지 않는 경우. 리파지토리, 일반 비지니스 로직 등.
모든 Bean을 다 등록하는 @SpringBootTest는 단위테스트에서 사용하지 않는 것이 좋다!
통합 테스트와 단위 테스트의 목적을 구분해 사용하자.
Mockito를 사용하자.