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

gntjd135님의 프로필 이미지
gntjd135

작성한 질문수

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

상품 도메인 개발

test코드 질문있습니다!!

작성

·

346

0


[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)

[질문 내용]
save를 테스트하는 부분입니다. assertthat에서 is same as는 객체의 주소까지 일치 여부를 확인하고, isequalto는 내용을 확인하는 것까지 이해했습니다. 저기 save함수 //given에서 item을 생성했을때의 주소를 a라고 하면, itemrepository.save에서 store.put을 할때 주소가 a인 item이 그대로 repository에 저장되는건가요? 주소가 a인item객체의 복사본을 생성하고, 이을 저장해서 주소가 다른 b가 repository에 저장되는 것이 아니었나요? 실행해보면 다 sameas라고 나와서 객체의 주소가 같다고 나오는데 이해가 잘 안가서 여쭈어 봅니다.! 만약 repository에 저장된 item도 주소가 a라면, 둘 다 완전 동일한 heap영역에 있는 객체인게 맞나요?

답변 1

1

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

item을 생성했고, 생성된 item 객체의 참조값이 a라고 가정하면

repository에 참조값이 a인 item객체를 저장하면 map에 동일한 item이 저장됩니다.

말씀하신 대로 둘 다 완전 동일한 것이며 heap 영역에 생성된 하나의 객체를 바라보게 됩니다.

감사합니다.

gntjd135님의 프로필 이미지
gntjd135

작성한 질문수

질문하기