오늘은 팀 프로젝트로 개발 중인 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 빌트인 객체에 대한 나 자신의 무지함을 실감했다... 편식하지 않고 골고루 지식을 쌓아야겠다고 생각했다.
'항해99_10기 > 105일의 TIL & WIL' 카테고리의 다른 글
[6주차] [202212-17] 협업을 위한 준비, 프로젝트 세팅 (feat. README.md) (0) | 2022.12.18 |
---|---|
[6주차] [20221216] 프런트 개발자와의 첫 협업, 와이어프레임 그리기와 api 설계 (0) | 2022.12.16 |
[5주차] [20221213] TypeScript 핸드북 입문 (0) | 2022.12.13 |
[5주차] [20221212] 3 Layered Architecture Pattern에서 테스트 코드를 위한 의존성 주입 (feat. 생성자 주입, jest.js) (0) | 2022.12.12 |
[4주차 WIL] 2022.12.05 ~ 2022.12.10 회고 (0) | 2022.12.11 |