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

공손한 종다리님의 프로필 이미지

작성한 질문수

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

회원 리포지토리 테스트 케이스 작성

테스트부분이 계속 에러가 발생합니다

작성

·

299

0

[질문 내용]
여기에 질문 내용을 남겨주세요.
 
구글링까지 다 해봤고 여러번 반복해가면서 하다가 결국 못해서 강의 파일에 코드 복붙까지 했는데요 꼭 findByName() 저 부분에서 테스트 에러가 납니다..
 
java.util.NoSuchElementException: No value present
 
이유를 모르겠습니다 어떻게 해야 할까요 이거때문에 하루 종일 다음진도 못나가고 있습니다 

답변 3

0

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

 

위는 강의자료, 아래는 닿님의 코드입니다. 차이점이 보이실까요 ?

 

 

@Override
public Optional<Member> findByName(String name) {
store.values().stream()
.filter(member -> member.getName().equals(name))
.findAny();
return Optional.empty();
}

 

에러 문구에 출력되는 내용을 확인하셔서 그 부분을 집중해서 강의자료와 비교해보시면 문제 해결에 많은 도움이 되실꺼에요.

이번의 경우는 findByName에서 강의와 다르게 구현하여 발생한 문제지만, 가령 member.getName, setName 등에서 오타가 발생한 경우에도 문제가 발생할 수 있는데, 이러한 경우 findByName이 아닌 Member의 코드르 봐야해서 코드를 요청 드린 것이고, 문제가 발생할 때 바로 질문하지 않고 직접 찾아보시는 것은 매우좋은 학습 방법이지만 강의 수강 중 문제가 발생할 때는 1~2시간 선에서 해결을 시도해보시고 안될 경우 질문 남겨주시면 좋을 것 같아요! (닿님의 시간은 소중하니까요ㅎㅎㅎ)

추후 또 문제가 발생하면 적당히 고민해보시고 안될 경우 질문 남겨주세요

 

 

강의자료의 코드로 수정 후 테스트결과

 

감사합니다.

친절하게 답변 달아주셔서 정말 감사드립니다 항상 많은 도움이 됩니다 감사드립니다

0

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

올려주신 내용으로 문제 상활 발생에 대한 해결책을 정확히 전달 드리기는 힘들어보입니다.

아래의 내용을 참고하여 프로젝트 업로드 후 링크를 공유해주세요.

 

*중요

프로젝트 링크 공유 전

크롬 or 엣지 브라우저에서 ctrl + shift + n을 입력하여 시크릿모드에서 링크 접속을 시도하여 화면에 아래와 같은 액세스 권한이 출력되지 않아야합니다.

 

전체 프로젝트를 압축해서(코드 일부만 올려주시면 실행이 불가능하고, 해당 코드가 아닌 다른코드 혹은 설정에서 발생할 여지도 있습니다. 전체 프로젝트를 업로드해주세요) 구글 드라이브로 공유해서 링크를 남겨주세요.

구글 드라이브 업로드 방법은 다음을 참고해주세요.

https://bit.ly/3fX6ygx

 

 

감사합니다.

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

답변 진심으로 감사드립니다 말씀해주신대로 링크 첨부하였습니다 

*중요

프로젝트 링크 공유 전

크롬 or 엣지 브라우저에서 ctrl + shift + n을 입력하여 시크릿모드에서 링크 접속을 시도하여 화면에 아래와 같은 액세스 권한이 출력되지 않아야합니다.

링크 접속이 불가능합니다. 확인 후 수정해주세요

https://drive.google.com/drive/folders/1QPjF5NOtLgyrFeILZvs7qtP1ePf7dxCp?usp=sharing 죄송합니다 다시 한번 만 부탁드립니다

0

추가로 MemoryMemberRepository 를 만들때는 멀정하다가 테스트파일 실행시키고 난 뒤로 레파지토리까지 오류가 나는 상황입니다