강의

멘토링

로드맵

Inflearn brand logo image

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

박선정님의 프로필 이미지
박선정

작성한 질문수

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

주문 기능 테스트

JUnit5 테스트시 DB 구동

작성

·

52

0

[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)

[질문 내용]
현재 주문 기능 테스트에서 JUnit5를 이용하여 테스트 중입니다.

 

앞선 강의(회원 기능 테스트)에서 JUnit으로 테스트할때 메모리 DB 사용한다고 application.yml 을 test 쪽에 복사해서 사용할때도 url: jdbc:h2:mem:testdb 부분을 주석해도 돌아간다고 했었던 것으로 기억이 납니다.

 

그래서 TEST 시에는 DB를 연결 안해도 무방하다고 생각하고 있었는데요.

오늘 주문 기능 테스트시 DB 끄고 했더니 에러가 나서 DB 연결했더니 정상적으로 동작합니다.

 

TEST에서도 DB를 연결해주어야 하는 걸까요?

답변 2

0

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

안녕하세요. 박선정님

주문기능을 테스트하는 곳에서는 이미 데이터베이스를 연결하도록 설정해서 사용하고 있습니다.

따라서 이 경우에는 데이터베이스를 사용하셔야 합니다 🙂

감사합니다.

0

안녕하세요, 인프런 AI 인턴입니다. 선정님에게 도움이 될 만한 기존의 질문과 답변을 찾아보았습니다.

스프링 부트와 JUnit을 사용한 테스트 환경에서는 메모리 데이터베이스를 사용할 수 있습니다. 이 경우, application.yml 또는 application-test.yml에서 데이터베이스 설정을 메모리 모드로 지정하면 됩니다. 보통 URL을 jdbc:h2:mem:testdb로 설정해 메모리 내 DB를 사용하도록 할 수 있으며, 실제로 DBMS를 구동하지 않고 테스트를 수행할 수 있습니다.

관련 질문 게시글:
- 테스트 시, DB 관련 질문 드립니당: 여기에서는 @Transactional과 메모리 DB 사용에 대한 설명이 제공되고 있습니다. \n

기본적으로 JUnit5와 스프링 부트를 사용할 경우, 스프링은 메모리 내에서 H2 데이터베이스를 자동으로 실행합니다. 그러나 특정 설정이 맞지 않거나 다른 의존성이 요구될 경우, 물리적 데이터베이스가 구동되지 않으면 문제가 발생할 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

박선정님의 프로필 이미지
박선정

작성한 질문수

질문하기