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

hrd4님의 프로필 이미지
hrd4

작성한 질문수

실전! Querydsl

Querydsl 설정과 검증

contextLoad에 작성하신 테스트 관련 질문입니다.

작성

·

439

0

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.

1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? 예
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예
3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예

[질문 내용]
현재 본 강의까지 H2설정을 application.yml에 하지 않았는데 contextLoads()에 작성한 테스트가 어떻게 성공적으로 수행되는 건가요?

답변 2

0

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. hrd4님

별도의 설정을 하지 않으면 스프링 부트가 H2 데이터베이스를 메모리 모드로 띄워서 실행합니다 :)

감사합니다.

0

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

contextLoads()는 스프링 부트 테스트에서 스프링 애플리케이션이 성공적으로 로드되었는지 확인하는 메서드입니다. 이 메서드는 특정한 작업을 수행하는 것이 아니라, 스프링 애플리케이션이 잘 동작하는지에 대한 검증을 위한 용도로 사용됩니다.

H2 설정을 application.yml에 작성하지 않고도 contextLoads() 메서드가 성공적으로 실행되는 이유는 다음과 같이 설명할 수 있습니다.

  1. contextLoads()는 @SpringBootTest 어노테이션이 선언된 테스트 클래스에서 사용되며, 이 어노테이션은 스프링 애플리케이션 컨텍스트를 로드합니다. H2 설정이 없는 경우에도 스프링 애플리케이션 컨텍스트 자체를 로드할 수 있기 때문에 테스트는 성공적으로 수행될 수 있습니다.

  2. H2 설정을 application.yml에 작성하는 것은 애플리케이션 실행 시에 H2 데이터베이스를 사용하기 위한 설정입니다. 하지만 contextLoads()는 단위 테스트이기 때문에 실제로 H2 데이터베이스에 접근하거나 사용하지는 않습니다. 따라서 H2 설정이 없어도 테스트는 성공적으로 수행될 수 있습니다.

그러나, 만약에 H2 데이터베이스를 사용하는 기능을 테스트하고 싶다면 @DataJpaTest나 @SpringBootTest(classes = {YourApplication.class})와 같이 어노테이션을 추가하여 H2 설정을 포함한 애플리케이션 컨텍스트를 로드하도록 할 수 있습니다.

더 궁금한 점이 있으시다면 언제든지 물어보세요!

hrd4님의 프로필 이미지
hrd4

작성한 질문수

질문하기