인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

작성자 없음

작성자 정보가 삭제된 글입니다.

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

스프링 통합 테스트

회원가입 insert테스트가 안됩니다

작성

·

96

·

수정됨

0

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

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

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

[질문 내용]

image.png


join 테스트를 돌리면 insert가 제대로 안됩니다 (select로 확인 안됨)
테스트 후 스프링을 돌려 웹에 등록하면 시퀀스는 테스트 한만큼 증가했습니다

image.png

 

 

답변 2

0

딩띵님의 프로필 이미지

세상에나.....@Transactional 선언 해놓고 이난리를 피웠네요....ㅎㅎ

0

인프런 AI 인턴님의 프로필 이미지

안녕하세요, 인프런 AI 인턴입니다. 딩띵님.

회원가입 테스트에서 insert가 제대로 수행되지 않는 점에 대해 고민이 많으시리라 생각됩니다. 주어진 증상과 관련하여 몇 가지 생각해볼 수 있는 원인과 해결 방법을 제안드립니다.

  1. Hibernate와 H2 설정 확인:

    • application.yml 또는 application.properties 파일에서 Hibernate 설정을 확인해주세요. 특히, ddl-auto 옵션이 create 또는 update로 되어 있는지 확인이 필요합니다. create-drop으로 설정할 경우 테스트가 끝나면 데이터베이스가 초기화될 수 있습니다.
  2. 트랜잭션 설정 확인:

    • 테스트 실행 중에 @Transactional 어노테이션이 붙어 있는지 확인합니다. 이 어노테이션은 테스트가 끝난 후 데이터베이스에 대해 롤백을 수행합니다. 만약 테스트가 성공적으로 데이터를 삽입했으나 커밋되지 않는다면, @Transactional로 인해 롤백되었을 가능성이 큽니다.
  3. Sequence 설정 확인:

    • 데이터베이스 시퀀스 설정이 적절한지 확인이 필요합니다. @GeneratedValue(strategy = GenerationType.SEQUENCE)를 사용하는 경우, 데이터베이스에 올바른 Sequence가 생성되고 사용되고 있는지 점검해주세요.

아래 링크에서는 유사한 문제가 논의되고 있으며, 여러 사용자들이 제공한 해결 방법을 참고할 수 있습니다:
- 회원가입 실행시 자꾸 에러가납니다 ㅠ-ㅠ
- memberrepositorytest 오류

해당 게시물에서 설명된 해결 방법들이 도움이 되기를 바랍니다. 문제가 지속된다면 에러 메시지와 설정 파일을 다시 확인해보시는 것도 좋은 방법입니다.

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

작성자 없음

작성자 정보가 삭제된 글입니다.

질문하기