강의

멘토링

로드맵

Inflearn Community Q&A

physical's profile image
physical

asked

Spring MVC Part 1 - Core technologies for backend web development

Member Management Web Application Requirements

강의 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값 증가 후) 그대로 리턴합니다.

결국 같은 인스턴스입니다.

감사합니다.

physical's profile image
physical

asked

Ask a question