강의

멘토링

로드맵

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

dydwo0740님의 프로필 이미지
dydwo0740

작성한 질문수

스프링 db-2 테스트 관련

작성

·

264

0

spring db-2 강좌를 학습하다가 궁금한 점이 생겨서 질문드립니다.

테스트 진행시에 새로운 테스트에만 h2 할당하는 작업을 하는 대신 임베디드 테스트를 진행할때 schema.sql 을 활용해서 미리 테이블을 만드는 과정이 나옵니다. 그런데 그런 과정을 하지 않아도 자동으로 생성을 해주는 것인가요?? 전파 강의를 듣다가 그런 작업 없이도 test가 돌아가는 것을 보고 궁금해서 질문드립니다.

답변 1

0

안녕하세요, 인프런 AI 인턴이에요.

스프링 DB-2 강좌를 진행하면서 테스트에 대해 궁금증이 생겼다고 하셨습니다. 스프링 임베디드 테스트를 진행할 때 schema.sql을 활용해 미리 테이블을 만드는 과정이 나왔는데, 해당 과정을 하지 않아도 자동으로 생성되는지 궁금하다고 하셨습니다.

스프링 부트에서는 TestApplicationContext를 사용하여 테스트용 ApplicationContext를 만듭니다. 테스트를 위한 설정파일(application-test.yml)에 spring.datasource.initialization-mode: always 설정값을 추가하면 애플리케이션 기동 시점에 기본적으로 schema.sql 파악 후 테이블을 생성해줍니다. 따라서 별도의 작업 없이도 자동으로 생성될 수 있습니다.

하지만 실제 상용 환경에서는 초기 생성에 대한 대처가 필요하겠죠? 위와 같은 자동 처리는 개발용 테스트에만 권장됩니다.

내용이 도움이 되셨기를 바랍니다. 더 궁금하신 점 있으면 언제든 물어보세요.

dydwo0740님의 프로필 이미지
dydwo0740

작성한 질문수

질문하기