과거공부모음
나의 개발일지 20221227 TIL(Today I learned) - jest
MUJA
2022. 12. 27. 22:19
Today I learned
- 애로우 함수 this
- JEST
오늘은 애로우 함수를 사용하다가 this의 이상한 작동을 발견했다 애로우 함수에서 this가 작동을 하지 않았다
그리고 상위 스코프의 this를 바인딩한다
const cat = {
name: 'meow',
foo1: function () {
const foo2 = () => {
console.log(this.name);
}
foo2();
}
};
cat.foo1();
애로우 함수의 this의 특징을 알았다 애로우 함수를 자주 사용하니까 꼭 기억하자
내가 작업한 코드가 잘 동작하는지 test를 해야한다 그러기 위해서 test코드가 필요하다
이러한 부분을 쉽게 도와주는 jest를 사용해보자
테스트를 위해서 필요하니까 devDependencies에 설치를 한다
npm install -D jest
간단한 예제로 사용해보자
describe('계산 테스트', () => {
const a = true;
test('a는 참이다.', () => {
expect(a).toEqual(true);
});
});
describe로 테스트 그룹을 묶어주고 그 안에 테스트를 작성한다
예제로 사용해 봤으니까 실습에서 사용을 해보자
describe('Layered Architecture Pattern Posts Service Unit Test', () => {
beforeEach(() => {
jest.resetAllMocks();
})
test('Posts Service findAllPost Method', async () => {
const findAllPostReturnValue = [
{
postId: 1,
nickname: "Nickname_1",
title: "Title_1",
createdAt: new Date('06 October 2011 15:50 UTC'),
updatedAt: new Date('06 October 2011 15:50 UTC'),
},
{
postId: 2,
nickname: "Nickname_2",
title: "Title_2",
createdAt: new Date('07 October 2011 15:50 UTC'),
updatedAt: new Date('07 October 2011 15:50 UTC'),
},
]
mockPostsRepository.findAllPost = jest.fn(() => {
return findAllPostReturnValue;
})
const allPost = await postService.findAllPost();
expect(allPost).toEqual(
findAllPostReturnValue.sort((a, b) => {
return b.createdAt - a.createdAt;
})
);
expect(mockPostsRepository.findAllPost).toHaveBeenCalledTimes(1);
});
자주 사용하는 애로우 함수에 대해서 자세히 알고 테스팅을 위해 jest를 사용하는 법을 알았다