$ npm test
PASS src/lodash.spec.ts
프로필을 만들고
전개연산자로 복사하면
✓ name을 바꿔도 원본은 변하지 않는다. (2 ms)
✓ teammates의 name을 바꾸면 원본도 변한다.
Test Suites: 1 passed, 1 total
Tests: 2 passed, 2 total
Snapshots: 0 total
Time: 2.535 s
Ran all test suites.
생각했던대로 테스트가 수행되었다.
이제 _.cloneDeep을 이용해서 Deep Copy를 해보자.
_.cloneDeep으로 객체를 복사했을 때 Primitive type인 필드(이 경우엔 name)를 바꾸면
$ npm test
PASS src/lodash.spec.ts
프로필을 만들고
전개연산자로 복사하면
✓ name을 바꿔도 원본은 변하지 않는다. (2 ms)
✓ teammates의 name을 바꾸면 원본도 변한다. (1 ms)
_.cloneDeep으로 복사하면
✓ name을 바꿔도 원본은 변하지 않는다. (1 ms)
✓ teammates의 name을 바꿔도 원본은 변하지 않는다. (1 ms)
Test Suites: 1 passed, 1 total
Tests: 4 passed, 4 total
Snapshots: 0 total
Time: 1.253 s
Ran all test suites.
_.cloneDeep이 문서에 있는대로 작동한다는 것을 확인했다. 이렇게 새로운 프레임워크나 라이브러리를 학습할 때 무작정 console.log를 해보며 확인하기보단 학습테스트를 작성해둔다면 나중에 기술을 도입할 때도 참고할 수 있다. 또한 이렇게 문서를 보며 이해하고 예상한대로 작동하는지 확인할 수 있다는 것이 학습테스트의 또 다른 장점이라 할 수 있다.