assaultThat의 동등성 비교 질문
294
작성자 없음
작성한 질문수 0
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/)
[질문 내용]

findByName()의 테스트 부분을 보면 아무리 봐도 member1의 밸류값과 result의 밸류값이 "spring1"로 동일한데 테스트에 실패했다고 뜹니다
근데 한 가지 의문인 건 테스트 값 결과를 보면 동등성이 아닌 동일성 비교를 하는 거 같은데, MemoryMemberRepository의 store가 HashMap을 사용하기 때문에 equals()와 HashCode()를 재정의 해줘야 하는 걸까요? 강의 내용엔 따로 기재되지 않아 질문합니다!
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
질문하신 내용과 유사한 상황에서의 테스트 실패 문제를 해결하기 위한 답변을 찾았습니다. 당신이 직면한 문제는 findByName() 테스트가 실패하는 상황에 대한 것으로, 테스트 결과가 동등성이 아닌 동일성 비교로 나타나고 있음을 지적하셨습니다. 본 문제는 equals()와 hashCode() 메소드를 재정의 해야 하는지 여부에 대한 질문도 포함하고 있습니다.
해당 질문과 관련하여, 다음 링크의 답변이 도움이 될 수 있습니다:
- MemoryMemberRepositoryTest에서 findByName()에러 (afterEach()가 안돼요) - 이 질문에서는
findByName()테스트 시 실패한 사례와 그 해결 방법에 대해 논의합니다. 두 객체(멤버)가 동일해 보이지만 테스트가 실패하는 주요 원인으로@Test어노테이션을 잘못 사용하여 발생한 오류를 설명하고 있습니다. Java에서 객체의 동등성 비교를 위해서는equals()와hashCode()메서드의 적절한 구현이 필요하며, 이는 객체가 논리적으로 동일함을 판단하기 위한 기준을 제공합니다.
강의 내용에서 이 부분이 명시적으로 언급되지 않았다면, 일반적으로 객체의 동등성을 검사하는 테스트를 작성할 때 equals()와 hashCode() 메소드를 오버라이드하는 것이 권장됩니다. 이는 자바에서 객체 비교 시 동등성을 확실히 보장하기 위한 일반적인 방법입니다.
또한, 여러분이 언급한 MemoryMemberRepository의 store가 HashMap을 사용하는 경우, equals()와 hashCode()를 재정의 함으로써 키의 동등성 비교가 올바르게 수행될 수 있습니다. 이는 HashMap 내에서 키로 사용되는 객체의 동일성 검사를 올바르게 수행하기 위함입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
..
0
74
2
Unused property.....
0
98
2
project JDK is misconfigured
0
130
2
외부 API의 ID 타입(String/UUID)과 내부 도메인의 ID 타입(Long)이 불일치할 때의 설계 정석
0
82
2
단위/통합 테스트 버전충돌 문제
0
91
2
❗️springboot 4.0.2 버전 aspectj dependency 설정❗️
0
228
1
왜 컨트롤러는 변한게 없는데 새로 만든 html 파일이 뜨나요?
0
102
2
윈도우 build test오류 질문
1
102
2
테스트 관련 공부에 대한 조언을 얻고 싶습니다
0
98
2
테스트 실행 시 에러 질문
0
289
1
name을 통한 비교와 객체를 통한 비교
0
77
1
빌드 후 libs 없음
1
128
1
윈도우 gradlew.bat 에러
0
167
1
@PostMapping("/members/new")가 동작하지 않습니다
0
88
1
java static class와 kotlin class
0
77
1
스프링 DB연결
0
126
1
소요 시간
0
85
2
ddl.sql에 빨간 밑줄
1
101
2
welcome page 에러
0
180
3
잘 모르겠습니다.
0
163
2
fail을 똑같이 쳤는데 오류가 발생해요
0
156
2
index.html Welcome page
0
121
1
프로젝트 gradle-groovy ?
0
364
1
테스트코드 메서드명 한글
0
200
2





