인프런 커뮤니티 질문&답변
통합테스트에서 @Autowired
작성
·
235
1
안녕하세요! 강의 너무 잘 듣고 있습니다.
듣다가 잘 모르겠는 점이 있어서 질문을 드립니다.
기존 서비스 테스트코드에서는 @BeforeEach로 의존주입을 했는데,
통합테스트에서는 아래와 같이 @Autowired로 끌어온다고 하셨습니다.
테스트코드인데도 SpringConfig코드에서 아래의 서비스와 레포지토리 객체를 실제로 끌어오는 건가요?
퀴즈
순수 JDBC를 사용할 때, 데이터베이스 리소스(연결, Statement 등) 관리가 어려웠던 주된 이유는 무엇일까요?
SQL 쿼리를 직접 작성해야 해서
각 리소스를 사용 후 반드시 직접 닫아줘야 해서
테스트 간 데이터 독립성을 보장하기 어려워서
의존성 주입 설정이 복잡해서
답변 1
1
안녕하세요. hyewon981019님, 공식 서포터즈 OMG입니다.
네 맞습니다.
통합테스트는 실제 스프링을 띄워서 실행되기 때문에 실제 빈이 주입됩니다.
실제 빈 주입이 아닌 가짜객체로도 테스트가 가능합니다.
"Mockito"란 테스트 프레임워크(라이브러리)로 검색해보시면 가짜객체로도 검색해보시면 많은 자료가 나올꺼에요.
SpringConfig에서 @Bean으로 수동 등록한 Repository가 있다면 테스트에서 주입 받습니다.
본 강의에서는 MemoryMemberRepository, JDBCMemberRepository, JPARepository, SpringDataJPARepository를 이용하오니 참고하시길 바랍니다.
감사합니다.





