1.TDD의 개발 주기 3단계는 아래와 같다.
1.Write Failing Test: 실패하는 테스트 코드를 먼저 작성한다.
2.Make Test Pass: 테스트 코드를 성공시키기 위한 실제 코드를 작성한다.
3.Refactor: 중복 코드 제거, 일반화 등의 리팩토링을 수행한다.
2.TDD를 사용해야 하는 가장 큰 이유는 예상하지 못했던 버그를 줄여 소요 시간을 줄일 수 있으며 부분적으로 테스트를 진행해 오류가 난 부분을 빠르게 파악하고 작은 부분을 탐색해 수정할 수 있기 때문이다. 수백 수천줄의 코딩이 진행된 상태에서 어디가 문제인지를 파악하지 못하게 되서 다시 처음부터 하게된다면 빠르게 작성했더라도 의미가 없기 때문에 안정적으로 개선해 나갈 수 있는 TDD의 평균 개발시간이 더 빠를 것(이라는 주장)이다.
3.리액트에서 테스트코드를 사용할 때 Testing Library, Jest를 이용하며 기본적으로 리액트를 생성할 때(create-react-app) Testing Library가 포함되어 있으므로 바로 작성할 수 있다.
4.리액트에서 expect를 사용해 테스트를 짤 수 있다.
6.TestBuilder에서 요구하는 기능에 맞춰 함수를 모두 구현했다.(유효성 검사와 유사)
5,7.테스트코드를 원하는 기능에 맞춰 작성하고 테스트할 수 있다.
TDD라고 해서 뭔가 거창해보였지만 막상 테스트코드를 작성해보니 딱히 난이도가 높지는 않았다.
다만 에러가 날 부분들까지 미리 다 고민하고 작성해야 하기 때문에 누군가가 말했던 것 처럼 테스트를 위한 테스트라는 말이 떠올랐다.
TDD를 해서 오류를 잡을 수 있다는건 테스트케이스를 생각하며 고민하는 시간을 더 가져서 그런게 아닐까 싶기도 하다.
'회고' 카테고리의 다른 글
| Amazon Web Service (0) | 2022.08.05 |
|---|---|
| Optimization (0) | 2022.08.04 |
| GraphQL (0) | 2022.08.02 |
| 컴퓨터 공학 기초 (0) | 2022.08.01 |
| 학습(알고리즘) (0) | 2022.07.31 |
