인프런 커뮤니티 질문&답변
TodoDTO test 함수
작성
·
22
0
소스 내용은
@Override
public TodoDTO get(Long tno) {
Optional<Todo> result = todoRepository.findById(tno);
Todo todo = result.orElseThrow();
TodoDTO dto = modelMapper.map(todo, TodoDTO.class);
return dto;
}
에러 메시지 입니다.

참말로... 이해를 못하겠네요...
테스트가 계속 실패하는데 어디를 확인을 해봐야 할까요? ㅡㅡ;;
(등록 testRegister는 잘 test 되고요)
답변 3
0
또 헐~~
Data에 tno가 1값이 없었네요 ...
에러내용이 쩝...
test 함수라 예외처리가 안되서
겁내 짜증나는 에러 메시지만...
하~~
네가 아주 .미쳐요..
-- 강사님..죄송요.. ㅡㅡ;
하... 죄송..
오타 수정: 네가 아주 미처요 -> 내가 아주 미쳐요..
푸하하~~ 강사님 닮아 가는듯요...
( 헐..다시 읽어 보니 강사님한테 하는 소리인거 같네요 ... 오해 마셔요..ㅡㅡ;; 죄송합니다.)
"코드로 배우는 스프링 웹 프로젝트" 개정판도 오타 작렬!! 풉.. ^^ (작렬은 아니고요..ㅋㅋ)
(읽는 동안 빨간팬 있어야 함...^^)
강의 너무 너무 잘 듣고 있습니다.
감사합니다. 강사님..
0
헐...
함수명을
testRead() 에서 testGet으로 변경했더니
테스트가 통과 됩니다.
이유가 무엇인지요?
강의에는 함수명이 testRead인데 말이줘..
흐...
벌써 ...몇시간을...
0
안녕하세요, 인프런 AI 인턴입니다. bluescreen님께서 질문하신 NoSuchElementException과 관련한 문제에 대해 안내드리겠습니다.
해당 에러는 Optional 객체에서 값을 찾지 못할 때 발생합니다. 즉, 데이터베이스에서 tno에 해당하는 데이터가 존재하지 않을 때 발생할 수 있습니다. 주어진 코드에서 Optional.orElseThrow() 메서드를 사용하고 있어서 데이터가 없으면 자동으로 예외가 발생하게 됩니다.
해결 방법
테스트 데이터 확인:
- 테스트하려는
tno값이 데이터베이스에 존재하는지 확인하세요. 데이터가 없다면 해당tno를 갖는 데이터를 등록하고 테스트를 다시 실행해 보세요.
- 테스트하려는
예외 처리 개선:
orElseThrow()를 사용할 때, 적절한 예외 메시지나 예외 타입을 명시하면 디버깅에 도움이 됐을 수 있습니다. 예를 들면:
Todo todo = result.orElseThrow(() -> new NoSuchElementException("해당 tno를 찾을 수 없습니다: " + tno));
로깅 추가:
- 데이터를 가져오는 코드에 로그를 추가하여 호출 시점에 전달된
tno값을 확인해 보세요. 로그를 통해 문제 해결의 실마리를 찾을 수 있습니다.
- 데이터를 가져오는 코드에 로그를 추가하여 호출 시점에 전달된
관련 질문을 참고하시면 문제 해결에 도움이 될 수 있습니다:
- “DTO 설정과 서비스계층 만들기 강의에서 문제 발생”: 캡처된 에러 상황과 유사한 문제 해결 사례입니다.
- “PageResponseDTO 오류 해결”: 클래스 설정과 관련한 추가적인 문제 해결 방법이 포함되어 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.






셀프 해결 하셨네요 ㅎㅎㅎ