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

HOSEONG SON님의 프로필 이미지
HOSEONG SON

작성한 질문수

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

스프링 통합 테스트

스프링 통합 테스트_회원가입 관련 질문

작성

·

487

0

 

안녕하세요 선생님!

좋은 강의 잘 듣고 있습니다.

 

다름이 아니라 스프링 통합 테스트 강의에서

MemberSerivceIntegrationTest 부분의 내용을

9분 40초까지 알려주신 코드와 동일하게 입력해도

오류가 발생하여 질문드립니다.

 

<결과>

 

<작성 코드>

답변 4

1

올려주신 프로젝트 확인해보았습니다.

jdbc, h2 강의 내용은 건너띄고 통합테스트 강의를 진행하신 것으로 보입니다.

통합테스트가 아닌 단위 테스트 진행 시 clearStore로 메모리의 내용을 테스트 종료 될 때 마다 지워주는 동작이 있었는데 해당 테스트 환경 세팅이 되어 있지 않아 발생하는 문제입니다.

두 가지 해결 법이 있습니다.

1. 각 테스트 마다 단위테스트 처럼 @AfterEach로 메모리에 저장된 데이터를 지운다

2. jdbc와 h2를 이용한 통합테스트를 진행한다.

 

이렇게 해결하실 수 있어보입니다.

 

0

HOSEONG SON님의 프로필 이미지
HOSEONG SON
질문자

 

강의 하나가 누락되어 통합테스트 환경이 세팅되지 않은 것이 원인이었습니다. 말씀주신 것처럼 jdbc와 h2를 이용한 통합테스트를 진행하여 조치하였습니다.

감사합니다!

0

 

이 부분을 제외하고 화면에 보이는 코드상에서 큰 차이점이 보이지는 않네요.

위 코드만 수정하신 후 해결이 안될 경우 프로젝트를 구글드라이브에 업로드하여 공유해주세요.

확인 후 답변드리겠습니다.

HOSEONG SON님의 프로필 이미지
HOSEONG SON
질문자

말씀해주신 코드로 수정한 후에도 오류가 발생하여

프로젝트 구글드라이브에 업로드하여 공유드립니다.

 

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

0

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

이러한 경우 join() 과 관련된 코드 부분에서 강의와 달라 발생한 문제로 보입니다.

validateDuplicatemember() 뿐만 아니라 findByName(), save(), getName(), getId() 등 메서드 부분을 확인해주세요.


감사합니다.

HOSEONG SON님의 프로필 이미지
HOSEONG SON
질문자

말씀해주신 대로 join()과 관련된 코드 확인해봤으나 모두 동일하게 작성되어 있는 상태입니다.

 

아래 validateDuplicatemember(), findByName(), save(), getName(), getId() 작성 코드입니다.

 

<작성 코드>

 

HOSEONG SON님의 프로필 이미지
HOSEONG SON

작성한 질문수

질문하기