인프런 커뮤니티 질문&답변

drrg9211님의 프로필 이미지

작성한 질문수

Practical Testing: 실용적인 테스트 가이드

테스트하기 어려운 영역을 분리하기

인자값을 LocalDateTime을 전달받는 경우 통합테스트에서는 어떻게 처리 되나요?

23.06.25 20:50 작성

·

423

0

  • 학습 관련 질문을 남겨주세요. 어떤 부분이 고민인지, 무엇이 문제인지 상세히 작성하면 더 좋아요!

  • 먼저 유사한 질문이 있었는지 검색해 보세요.

  • 서로 예의를 지키며 존중하는 문화를 만들어가요.

안녕하세요. 강의를 열심히 보고 있는 수강자입니다.

다름이 아니라 이번 강의를 보면서 궁금한 점이 있는데요!

LocalDateTime을 인자값으로 전달받아 단위테스트하기 좋게 리팩토링하셨는데, 나중에 createOrder를 호출하는 객체의 통합테스트를 진행할때는 시간에 대한 테스트코드를 어떻게 처리하는지 궁금합니다.

예를 들어 CafeKioskRunner에서 main 메서드를 통합 테스트한다고 했을 때 시간에 따라 createOrder에서 성공 또는 exception이 발생할 것 같아서 이것에 대한 통합테스트를 어떻게 처리하는지 궁금합니다.

감사합니다.

답변 1

0

박우빈님의 프로필 이미지
박우빈
지식공유자

2023. 06. 26. 22:53

안녕하세요, drrg9211님! :)

뒤쪽 강의에서도 비슷한 이야기가 나오겠지만, 테스트하기 어려운 코드를 상위 레이어로 분리할 때 항상 고민해야하는 것 중 하나는 어떤 레이어까지 분리해낼 것인지를 정하는 것입니다.
즉, 해당 코드를 계속 위쪽으로 분리하다보면 어느순간 멈춰야하는 지점이 있을텐데요. (보통은 가장 상위 레이어)

다시 반대로 이야기하면, 로직의 시작점인 최상위 레이어를 테스트 하는 것이 과연 효율적인 선택인지를 고민해야 한다는 뜻이기도 합니다.
(즉, View, 현재시간 값 등에 대한 로직 밖에 없는 main 메서드를 테스트하는 것이 효율적인가 하는 문제입니다.)

섹션 5에서 레이어별 테스트를 소개하면서 조금 더 자세히 풀어내고 있으니, 한번 참고해보시면 좋을 것 같네요. ㅎㅎ

감사합니다 :)

drrg9211님의 프로필 이미지

작성한 질문수

질문하기