강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của chlghksdyd313144
chlghksdyd313144

câu hỏi đã được viết

Học thiết kế hệ thống quy mô lớn thông qua việc tự tay xây dựng với Spring Boot - Bảng tin

Triển khai API CUD - Bình luận tối đa 2 cấp

Comment Mock 객체의 getDeleted 관련 질문

Đã giải quyết

Viết

·

245

0

안녕하세요, 강의 잘 듣고 있습니다.

 

"삭제할 댓글이 자식 있으면, 삭제 표시만 한다." 테스트 코드의 내부에서 commentService.delete(commentId); 가 호출되고, delete의 내부에는 댓글이 이미 삭제 됐는지 확인하는 .filter(not(Comment::getDeleterd)) 필터가 존재하는데, getDeleted에 대한 목 객체의 동작은 따로 선언하지 않는 것일까요?

(ex) given(comment.getDeleted()).willReturn(false);

 

답변 주시면 감사하겠습니다.

javamysqlspring-bootkafkaredis

Câu trả lời 5

2

kuke님의 프로필 이미지
kuke
Người chia sẻ kiến thức

chlghksdyd31님, 안녕하세요!

mock 객체가 boolean 값은 디폴트로 false로 반환해주기 때문에 문제 없이 넘어갔었네요.

테스트는 정상적으로 수행되긴 하지만,

given(comment.getDeleted()).willReturn(false);

적어주는게 명확하긴 합니다..!

말씀하신대로 처리하셔도 좋을 것 같습니다!

1

Mockito의 기본 동작을 잘 이해할 수 있었습니다.

boolean 값은 기본적으로 false가 반환되지만, 말씀처럼 given(comment.getDeleted()).willReturn(false);를 명시해두면 테스트 의도를 더 분명히 할 수 있다는 점이 정말 도움이 slope 됐어요.

1

chlghksdyd31님의 프로필 이미지
chlghksdyd31
Người đặt câu hỏi

행위를 명시하지 않으면 디폴트 값을 넘겨주는군요.. 답변 감사합니다!

0

As you progress through the Ragdoll Hit, each victory rewards you with coins. These can be used to purchase a variety of weapons and skins, allowing for a personalized gaming experience.

0

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

질문해 주신 내용은 JUnit과 Mockito를 사용하여 테스트하는 과정에서 발생할 수 있는 사항에 대한 것입니다. commentService.delete(commentId); 호출 중에 getDeleted() 메서드가 호출된다는 것은, 이 메서드의 리턴 값을 미리 설정해야 테스트가 원활하게 진행된다는 것을 의미합니다.

Mockito에서 목 객체 설정

  1. 목 객체 설정:

    • Mockito에서는 목 객체의 특정 메서드가 호출될 때 기대하는 리턴 값을 명시적으로 설정해야 합니다. getDeleted() 메서드가 호출되고 이 값에 따라 로직이 달라진다면, 목 객체에서 이 메서드의 결과를 미리 설정해 주어야 합니다.
  2. 예시 코드:

    given(comment.getDeleted()).willReturn(false);
    
  3. 필요성:

    • 설정하지 않으면, 목 객체는 null(또는 기본값)을 반환하므로 테스트 결과가 예상과 다르게 나올 수 있습니다.
    • 특정 반환값을 설정하면 테스트가 의도한 대로 작동하게끔 보장해 줍니다.

참고 자료

이와 유사한 문제를 다룬 인프런의 질문이 있습니다. 추가적인 배경 지식이나 유사한 사례를 참고하고 싶으시면 다음 질문도 확인해보세요:

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

Hình ảnh hồ sơ của chlghksdyd313144
chlghksdyd313144

câu hỏi đã được viết

Đặt câu hỏi