본문 바로가기

항해99_10기/105일의 TIL & WIL

[5주차] [20221214] Object.assign()

오늘은 팀 프로젝트로 개발 중인 3 layered architecture 게시판의 테스트 코드를 구현 중이다.

 

강의에서 배운 예시 코드에 갑자기 Object.assign()이 등장했다.

test('createNaverUser Method의 Success Case', async () => {
    // 새로운 서비스 할당
    let naverUsersService = new NaverUsersService();
    // Repository를 Mocking
    naverUsersService.naverUsersRepository = Object.assign(
      {},
      mockNaverUsersRepository
    );
   
   ...

});

 

Service layer 객체에 mockRepository 객체를 할당하기 위한 코드인데, 부끄러운 얘기지만, Object.assign({}, mockNaverUsersRepository) 코드 부분에서 왜 빈 객체를 넣어 줬는지 이해가 가질 않았다.

 

MDN에 가서 Obejct.assign() 메서드를 확인해보니, 인자로 (target, source)를 받는다. 

 

위의 예시에서는 naverUsersService.naverUsersRepository 변수에 mockNaverUsersRepository 객체를 Object.assign() 메서드를 이용하여 할당하는 것이기 때문에, target 객체에 빈 객체를 넣어준 것이다.

 

 

Object.assign() - JavaScript | MDN

The Object.assign() method copies all enumerable own properties from one or more source objects to a target object. It returns the modified target object.

developer.mozilla.org

 

 

p.s. 오늘을 계기로, Obejct 빌트인 객체에 대한 나 자신의 무지함을 실감했다... 편식하지 않고 골고루 지식을 쌓아야겠다고 생각했다.