Inflearn Community Q&A
강의 8분 50초, TEST code 관련 질문
Written on
·
247
0
TEST코드 작성에 있어서, 질문 드립니다.
아래 TEST코드 작성에서
강의와 다르게 테스트 코드를
Assertions.assertThat(saveMember).isEqualTo(member);
로 작성하여도 테스트가 통과하는 것으로 확인 하였습니다.
하지만, 변수 member 객체는 id를 가지지 않고,
save메서드를 이용하여 memberRepository에 저장된 Member 객체는 id값을 가지기에,
서로다른 객체로 취급될 것이라 생각하여 TEST를 통과하지 못할 줄 알았습니다.
그러나 TEST가 잘 통과되는 것을 확인하였습니다.
id값을 가지지 못한 Member 와 리포지토리에 저장된 id값을 가지는 Member는 서로 다른 객체로 취급될것이라 생각했는데.... 이 경우 왜 TEST가 통과된 것인지 알 수 있을까요?
class MemberRepositoryTest {
MemberRepository memberRepository = MemberRepository.getInstance();
@AfterEach
void afterEach() {
memberRepository.clearStore();
}
@Test
void saveTest() {
//given
Member member = new Member("kwon", 20);
//when
Member saveMember = memberRepository.save(member);
//then
Member findMember = memberRepository.findMember(saveMember.getId()); //강의코드
Assertions.assertThat(findMember).isEqualTo(saveMember); //강의코드
Assertions.assertThat(saveMember).isEqualTo(member); //TEST통과???
}
}MVCspring
Quiz
Why is it difficult to directly create an HTML screen using only servlets?
Server resource shortage
Complexity of writing HTML inside Java code
Database Connection Problem
Challenges in user authentication
Answer 1
0
안녕하세요. ksk님, 공식 서포터즈 OMG입니다.
save 메서드의 반환값은 인자로 받은 member를 (id값 증가 후) 그대로 리턴합니다.
결국 같은 인스턴스입니다.
감사합니다.




