mingg IT

[Refactoring] 리팩터링 4장 리뷰 본문

기타

[Refactoring] 리팩터링 4장 리뷰

mingg123 2023. 3. 20. 00:39

리팩토링 4장

테스트 코드 예시와 중요성에 대해 설명하고있음.

지금까지 읽었던 장 중 가장 고민을 하게 만드는 챕터였음.

 

4.1 자가테스트 코드의 가치

테스트 코드의 중요성에 대해서 설명하고있음. 리팩토링 이전에 테스트 코드는 필수.

 

4.2 테스트 할 샘플 코드

 

수요, 가격 등을 예시로 들고 있음.

 

 

4.3 첫 번째 테스트

4.4 테스트 추가하기

테스트 케이스들이 서로 독립적으로 돌기위해 beforeEach를 사용하라고 적혀있음.

 

나도 이전에 cypress로 테스트 코드를 작성하고(beforeEach), 느리다는 피드백을 받아서 before를 사용했었음.

(beforeEach에서 실제 API를 날리기 때문에 느렸던 부분에 충분히 공감했음.)

https://mingg123.tistory.com/195

 

[Cypress] BDD로 테스트 코드 작성하기

이전 포스팅에서 Cypress로 E2E 테스트 코드를 작성하였고, 팀 내 프론트엔드 파트에 공유를 하였다. https://mingg123.tistory.com/190 [Cypress] NX + React+ MUI + TS+ Formik Cypress 도입에 대한 고찰 테스트 코드의

mingg123.tistory.com

여튼 before 사용으로인해 일부 테스트 케이스들은 서로 의존성이 생기는 현상을 느꼈음. 

책을 읽고 고민을 하게되었고, 내가 찾은 해결방안은 API를 부르는 부분은 before를 사용하고

해당 페이지로 direct하거나 TextField를 초기화 하는 작업은 beforeEach를 작성해보면 어떨까 생각이 듬.

또한 before던 beforeEach던 지금 scope가 굉장히 decribe가 중첩되어있기 때문에..

어떤식으로 작성하면 더 효율적으로 쓸 수 있을까 고민을 추가적으로 해봐야겠다고 느꼈음. 

추가 수정하고 올리겠음.

 

 

 

 

4.5 픽스처 수정하기 

아주 작은 글씨로 beforeEach를 작성하고 난 이후에, 해체 즉 초기화된 상태의 필요성에 대해 말하고있음. 

서로 테스트들이 영향가지 않도록 하는 작업. 

나도 필요한게 cypress를 작성하면서 before를 썼더니 테스트 간의 의존성이 생김을 느꼈음. 

4.6 경계 조건 추가하기

일부러 수익이나 가격에 음수를 넣고 테스트를 한다.

문제가 생길만한 경계조건을 먼저 생각하고, 그에 필요한 테스트 코드를 작성한다.

 

4.7 끝나지 않은 여정

버그 리포트를 받으면 제일 먼저 해당 버그에 대한 테스트 코드를 작성한다.

=> 이번에 예약 문의쪽 해당방식으로 작성한 경험이 있다. 굳. 앞으로도 이렇게 하자. 

 

테스트 코드를 작성하고 수정하는데 시간이 많이 든다고 느낀다면, 너무 과하게 적은건 아닌지 생각해보자. 

 

 

몰랐던 키워드

테스트 스위트: 하나의 함수를 테스트 하기 위한 테스트 메소드들을 하나로 묶은 것 

 

Comments