예시를 보여주는 여러곳의 다른 코드들을 봤을때 어떤 곳에서는 describe와 it함수를 쓰고, 어떤 곳은 test함수를 쓰고 있다.
둘의 차이는 무엇이고 무엇을 써야할지 고민이 되어 검색을 해보았다.
it함수와 test 함수 둘다 jest.It.()를 가르키고 있다. 즉 Jest에서 동일한 역할을 수행하는 함수라고 할 수 있다. 두 함수는 모두 단위 테스트를 정의하는데 사용되며, 테스트 케이스를 작성할 때 어떤 것을 사용할지는 주관적인 선택이라고 한다.
it('버튼 랜더링 테스트', () => {
// When: setup() 함수를 호출하여 버튼을 렌더링
setup();
});
it('새로 등록 버튼 테스트', () => {
// Given: handleBtn을 mock 함수로 설정
const handleBtn = jest.fn();
const { getByText } = setup({
handleBtn
});
const submitButton = getByText('새로 등록');
// When: 새로 등록 버튼 클릭
fireEvent.click(submitButton);
// Then: handleBtn이 호출되었는지 확인
expect(handleBtn).toHaveBeenCalled();
});
test('버튼 랜더링 테스트', () => {
// When: setup() 함수를 호출하여 버튼을 렌더링
setup();
});
test('새로 등록 버튼 테스트', () => {
// Given: handleBtn을 mock 함수로 설정
const handleBtn = jest.fn();
const { getByText } = setup({
handleBtn
});
const submitButton = getByText('새로 등록');
// When: 새로 등록 버튼 클릭
fireEvent.click(submitButton);
// Then: handleBtn이 호출되었는지 확인
expect(handleBtn).toHaveBeenCalled();
});
결론
개인이나 팀의 코딩 스타일에 따라 다를 수 있는데 우리 어드민레포에는 새로 도입을 하는 중이기에 잡혀있는 상태가 아니다. 그러므로 개인적으로 선택을 하였다. Jest 공식문서에서 test를 사용하고 있기도 하고, it함수 보다 test함수가 테스트 코드에서 역할로 더 직관적인거 같아 가독성이 좋아보여 택하였다.
참고 문헌