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

novah님의 프로필 이미지
novah

작성한 질문수

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

데이터베이스 연동관련 문의

해결된 질문

작성

·

160

0

안녕하세요, 강의 잘 듣고 있는 학생입니다.

다름이 아니라 "스프링 통합 테스트"부분에서 기존 메모리에서 진행하던 테스트를 DB랑 연동해서 진행하는 부분에서,

테스트로 진행한 name이 들어가지 않는 중입니다.

테스트 돌릴시 fail은 따로 뜨지 않고, 잘 넘어가는 중입니다. 그리고 id 시퀀스도 하나 증가해서 잘 되는데 name이 등록이 되지 않더라고요.

따로 프로젝트를 실행해서 웹페이지에서 넣으면 문제없이 동작하는 중입니다.

(따로 id 시퀀스가 증가가 잘되는 것을 확인한게 웹페이지에서 넣고, 테스트로 돌리고, 다시 웹페이지에서 넣었을시, id가 8,10이 뜨는걸로 확인했습니다.)

어떻게 수정하면 될까요..ㅎ?

답변 4

2

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

안녕하세요. soumunda8님

이것은 정상입니다^^

스프링은 테스트에서 트랜잭션을 사용하면 테스트가 끝나고 데이터를 원복하기 위해서 롤백을 자동으로 수행합니다. 테스트에서 @Transactional이 있으면 끝나고 롤백합니다.

다음과 같이 @Commit 애노테이션을 하나 추가해주시면 테스트에서도 강제로 커밋해서 데이터가 추가됩니다.

@Test
@Commit
void 회원가입() {

감사합니다.

1

novah님의 프로필 이미지
novah
질문자

https://drive.google.com/file/d/1whQhkAhj4FWO0zx7vMUUD73kDknDuQ0x/view?usp=sharing

알려주신 setName은 아래 사진처럼 된 상태입니다!

링크가 있는 모든 사람들이 볼 수 있도록 권한을 변경해주세요.

novah님의 프로필 이미지
novah
질문자

https://drive.google.com/file/d/1whQhkAhj4FWO0zx7vMUUD73kDknDuQ0x/view?usp=sharing

수정해놓은상태입니다!번거롭게 해드려서 죄송합니다~

1

안녕하세요. soumunda8님, 공식 서포터즈 OMG입니다.

아래의 링크를 참고하셔서 구글 드라이브 링크를 공유해주세요.

구글 드라이브 공유 - OMG님의 블로그 - 인프런 | 커뮤니티 (inflearn.com)

감사합니다. 

0

링크 첨부하기 전에 Member 클래스와 MemberForm 클래스의 setName()을 확인해주세요.

void setName(String Name) 과 같이 되어 있을 수 있습니다.

Name으로 되어 있다면 name으로 바꿔주세요.

novah님의 프로필 이미지
novah

작성한 질문수

질문하기