Testing
코드의 에러를 확인하고 발생할 수 있는 이슈와 버그를 예측하는 과정
테스트는 기본적으로 어떤 것을 검증하고 확인하는 용도로 만드는 것이므로, 어떤 것을 확인할지에 따라 적용하는 테스트 종류가 다르다.
테스트는 단위에 따라 3가지로 나눌 수 있다.
단위 테스트
통합 테스트
E2E 테스트
테스트 코드는 코드가 올바르게 작성되었는지 검증하는 또 다른 코드다.
테스트 코드 역시 한 번 만들고 끝이 아니라 프로덕트를 구성하는 코드처럼 계속 유지 보수되고 발전시켜야 한다.
DAMP (Descriptive and Meaningful Phrases)
= 서술적이고 의미있게 작성하기
테스트 코드는 중복이 발생하더라도 직관적이고 명확하게 이해되도록 작성하는 것이 중요하다.
이 패턴은 BDD 중심인 사용자 행위를 기반으로 한 테스트 시나리오를 정의할 수 있도록 도와준다.
it('버튼을 1회 클릭하면 1번 클릭했다는 문구가 노출된다', async () => {
// Given: 사용자와 화면이 준비되어 있고, 화면에는 버튼이 존재함
const user = userEvent.setup();
render(<Component />);
// When: 사용자가 '여기를 눌러보세요'라는 버튼을 클릭함
const buttonElement = screen.getByRole('button', { name: '여기를 눌러보세요' });
await user.click(buttonElement);
// Then: 문구가 나타나는지 검증함
expect(screen.getByText('버튼을 1번 클릭했습니다.')).toBeInTheDocument();
});
(참고)
테스트 코드 작성 가이드(근데 이제 Jest를 곁들인)
[Jest] 테스트 코드로 JS 의 기능 및 로직 점검하기
코드와 함께 살펴보는 프론트엔드 단위 테스트 – Part 1. 이론 편