테스트 주도 개발(TDD)이란?
실제코드를 작성하기 전에 테스트 코드를 먼저 작성하는 개발 프로세스이다.
- 테스트 코드 작성
- 테스트 실행
- 코드 작성
- 테스트 실행
- 리팩터링
테스트 코드를 작성해야 이유
- 버그를 미리 발견할 수 있다.
- 리팩토링과 유지보수에 유리하다
- 테스트 파일 자체를 문서로 활용 가능하다
테스트 코드 종류
유닛 테스트
- 가장 작은 단위(Unit)를 테스트
- 가장 작은 단위는 함수, custom hook, 컴포넌트 등
유닛테스트의 특징
1. 독립적으로 작동하며, 비동기를 사용하지 않아, 굉장히 빠르게 작동한다.
2. 모듈화가 되어 있다.
3. 유지보수와 확장성에 장점이 있다.
E2E 테스트
- End to End 테스트의 약자
- 하나의 시나리오를 처음부터 끝까지 테스트
- 실제 브라우저나 디바이스에서 실행 되어 실제 사용자가 상호 작용하는 것과 유사한 환경에서 테스트
E2E 테스트의 특징
1. 작동하는데 오랜 시간이 걸린다.
2. 유닛들이 하나의 시스템에서 잘 작동하는지 검증
테스트 툴 종류