3주차 발자국

1. 학습 회고

3주차 키워드: Layer별 테스트

day11 - 단위 테스트 작성 미션

day12 - Persistence Layer

day13,14 - Business Layer

day15 - Presentation Layer

 

Persistence Layer

: DB 접근 계층, 단일 테스트와 유사함. 단순 DB 조회도 왜 테스트가 필요한지에 대해서도 깨달음.

Business

: 서비스 로직 계층. persistence layer가 포함된 통합 테스트 작성, Spring 을 통째로 띄워서 테스트.

Presentation

: 외부 세계의 요청을 받는 계층. 파라미터에 대한 최소한의 검증.

Persistence/Busuness Layer는 Mocking 하고 단위 테스트 형태로 진행.

Mock 을 쓰는 이유

: 테스트를 하는데 의존관계가 걸림돌 -> Mock 으로 해결

 

테스트 강의도 좋았지만 jpa 에 대해서도 한 번 짚고 넘어가는 강의여서 더 좋았다.

처음 발자국 작성한 게 얼마 전 같은데 벌써 3주차가 끝났다.

마지막까지 가보자고!

 

  1. 미션 회고

day 11 미션은 "Readable Code 강의에서 진행한 프로젝트에 단위 테스트 코드를 작성하기" 이다.

이전 리팩토링 미션에서 스터디카페를 했으니, 테스트 코드도 여기에 해보면 좋을 거 같아서

스터디카페 프로젝트에 단위 테스트를 작성해보았다.

 

미션을 진행하면서 고민한 것들은..

어떤 경우에 테스트 코드를 작성하면 좋을지, 만들어진 모든 메서드에 대해서 작성해야하나?

아니면 정말 중요한 것들에만 작성해야하나? 하는 것이었다.

그 결과, 중요해보이는 녀석들로만 선정을 했는데 다음 고민이 생겼다.

검증은 어떤 값을, 어느 정도 수준으로 해야하는지, 너무 뻔한 걸 검증하는 건 아닌지, BDD는 잘 따랐는지 등,,

아직은 배우는 단계니까 작성을 해 보는 것에 의의를 뒀다.

 

먼저 이용권 목록은 파일에서 읽어오는 형태이니,

좌석이용권/사물함이용권의 종류를 확인하면 좋을 것 같아서 테스트 코드를 작성했고,

고정석일때만 사물함을 선택 가능한 것도 중요한 조건인 것 같아서 테스트 코드를 작성했다.

그리고 가장 중요한 금액 계산.

할인 이벤트가 기간별로 잘 적용되는지, 사물함 이용권까지 할인이 되지는 않는지에 대한

테스트 코드를 작성하는 것을 마지막으로 미션을 제출했다.

 

 

학습 출처

인프런 워밍업 클럽 스터디 4기 - 백엔드 클린코드, 테스트 코드

수강 강의:

Practical Testing: 실용적인 테스트 가이드 - 박우빈

댓글을 작성해보세요.

채널톡 아이콘