inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

인프런 워밍업 스터디 클럽 3기 백엔드-code 3주 차 발자국

tteokboki
0

글은 박우빈님의 Practical-Testing 강의 참조하여 작성한 글입니다.

어느덧 수료까지 일주일만을 앞두고 있다. 벌써 75%나 진행되었다니,,,

이때까지 강의 안 밀리고 시간 안에 미션 제출한 내 자신 칭찬한다👍🏻 (아직 강의 섹션3개, 미션 2개 남음)

남은 한 주도 열심히 해서 수료해야지!!

 

이번 주는 테스트 코드가 필요한 이유 및 레이어드 아키텍쳐 내에서 각 레이어드별 테스트 코드 작성하는 법에 대해 배웠다.

강의를 듣고 테스트 코드를 작성해야 하는 이유에 대해서 완전 설득이 되었다.

기존에는 테스트 코드 작성하는 것이 너무 귀찮고 시간이 오래 걸린다는 이유에서 꺼려했지만, 점점 리팩토링 또는 기능을 추가할 때마다 수동으로 테스트 하는게 더욱 귀찮았다. 또한 수동으로 테스트를 했어도 항상 찝찝함이 존재했다.

그래서 우빈님 강의를 들으면서 엄청난 공감을 느꼈고, 강의를 열심히 학습해서,,,많이 배워야겠다는 다짐을 다시 하게된 것 같다.

다음으로 readable-code 강의에서 만든 스터디 카페 이용권 프로그램에 대해 스스로 테스트 코드를 작성해 보는 시간을 가졌다.

이번에는 열심히 작성한 후 리뷰 신청도 하였다.

테스트 코드 관련해서는 리뷰를 한번도 받아본 적이 없기도 하고, 코드 작성 중 궁금한 점이 생겨 리뷰 신청을 하는 용기를 내보았다..ㅋㅋㅋ

다음 주 중간점검 때 리뷰를 해주실 예정인데 기대된다!!!


학습 내용 요약

 

테스트는 왜 필요할까?

 

단위테스트

 

TDD: Test Driven Development

 

Spring / JPA 훑어보기 & 기본 엔티티 설계

 

Persistence Layer 테스트

 

Business Layer 테스트

 

미션

Day 11 - 스터디 카페 이용권 선택 시스템 테스트 코드 작성하기

나의 코드: https://github.com/Jiihyun/readable-code/pull/3

🤔 고민사항

 

1. StudyCafeSeatPassTest 클래스

테스트 케이스 반복을 줄이기 위해 @CsvSource를 사용해 보았다.

이로 인해 데이터만 추가하면되니 테스트 케이스를 쉽게 확장할 수 있다는 장점을 느꼈다.

하지만 StudyCafePassType을 직접 문자열로 작성했다보니, 후에 passType이 수정될 경우 테스트 코드 내 passType을 직접 수정해야 하기 때문에 유지보수 비용이 증가할 것 같다는 생각이 들기도 했다..

그래서 현업에서는 어떤 방식으로 테스트를 하지? 하는 궁금증이 생겼던 것 같다.

두 방법에 대해 트레이드오프가 존재하는데 어떤 걸 더 중요시하게 여겨 테스트하는지 궁금하다!

2. FileReaderTest 클래스

파일을 잘 읽어와 데이터를 의도한 대로 파싱하였는지 테스트하고 싶었다.

하지만 반환 타입이 일급컬렉션으로 되어 있고,컬렉션 내의 데이터를 확인하는 메서드는 프로그램에서 사용되지 않기 때문에 존재하지 않았다.

테스트를 공부하면서 배운 것 중 하나는 테스트만을 위한 메서드는 최대한 자제해야 한다고 했다.

그래서 오로지 테스트를 위해 컬렉션의 크기 등을 확인할 수 있는 메서드를 추가하고 싶지 않았고, 그래서 일급 컬렉션의 메서드를 직접 호출하여 테스트를 진행했다.
그치만 이렇게 짜여진 테스트도 본 적이 없는데....이런 방식으로 테스트를 해도 괜찮은지 궁금하다 ㅋㅎㅎㅋ

마무리

앞으로 이제 일주일 남았다..!! 벌써...?

다음 주 학습 내용에는 평소에 궁금했던 내용들에 대해 다루기 때문에 매우 기대가 된다.

배워본 적 없는 내용이라 시간을 많이 투자해야 할 것 하지만,,,

열심히 학습해서 내 것으로 만들어야지!

백엔드 클린코드 테스트코드 발자국 워밍업스터디클럽

답변 0