질문&답변
AfterEach 동작 과정 질문
위 의문을 해결하려면 static이 무엇인지 알아야 합니다. 말씀하신 것처럼 memberService 내부에 있는 MemoryMemberRepository 객체와, 테스트코드에서 선언된 memoryMemberRepository 는 다른 객체입니다. 하지만 MemoryMemberRepository 내부를 살펴보면 "private static Map store = new HashMap ();" 이라는 코드가 존재하는데요. 여기에서 static이란 무엇이냐, 쉽게 말하면 static이 붙은 store라는 인스턴스를 프로그램 내에서 딱 하나만 존재하도록 만들어줍니다. 정리하면 모든 MemoryMemberRepository 객체들은 동일한 store 를 사용하고 있습니다. 코드의 흐름을 정리해드리면 memoryMemberRepository.clearStore() 실행 모든 MemoryMemberRepository가 함께 사용하는 store 필드가 비워짐. 이후 중복_회원_예외() 메서드 실행 시 -> memberService.join() 메서드를 실행하면 비어있던 store에 데이터를 넣어줌. 이해 안가시는 부분 있으면 말씀해주세요!
- 좋아요수
- 0
- 댓글수
- 4
- 조회수
- 647





