참고
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술' 인프런 강의를 정리한 것 --> 스프링부트 강의 바로가기
스프링 DB 접근 기술
- repository 구현체를 바꿀 때 SpringConfig에서 Bean 설정만 바꿔주면 다른 소스는 수정하지 않고 변경 가능함(다형성이 뛰어남)
스프링 통합 테스트
@SpringBootTest : 스프링 컨테이너와 테스트를 함께 실행한다.
@Transactional
- 테스트 케이스에 이 애노테이션이 있으면, 테스트 시작 전에 트랜잭션을 시작하고, 테스트 완료 후에 항상 롤백한다.
- 이렇게 하면 DB에 데이터가 남지 않으므로 다음 테스트에 영향을 주지 않는다.
- TestCase에 적용된 경우에만 롤백함.
MemberServiceTest
- 순수 java test
- 단위테스트
- 속도가 스프링 통합 테스트에 비해 훨씬 빠르기 때문에 단위테스트를 잘 짜는 것이 더 중요함
- 더 좋은 테스트일 확률이 높음
MemberServiceIntegrationTest
- 스프링 통합 테스트
- 스프링 컨테이너까지 띄워야하기 때문에 시간이 오래 걸림