1

Service 레이어의 주문 생성 함수는 사진과 같이 여러 유효성 검사나 데이터베이스 조회 작업이 뭉쳐있고, 가독성이 좋지 않습니다.

이를 개선하고자 리팩토링을 계획했습니다.

리팩토링을 하기전에, 정상적 동작을 유지하기 위해, 테스트 코드를 미리 작성하고자 했습니다.

그러나 막상 테스트 코드를 작성하면서 여러가지 문제와 고민들에 마주쳤습니다.

24s

2

처음에는 함수에서 일어날 수 있는 유효성 관련 예외 케이스를 모두 고려했습니다.

당연히 여러가지 경우의 수가 생기고 만들어야할 mock data가 엄청나게 늘어나서 뭔가 잘못된것을 깨닳았습니다.

12s

3

문제가 되는 것은 유효성 검증을 하는 private 함수들이었습니다.

이들은 무조건 테스트해야합니다. 이 중 하나의 함수라도 잘못된다면, 잘못된 주문이 들어갈 수 있기 떄문이죠.

이들을 모두 테스트하기 위해, 여러 경우의 mock data를 만들고 있던 것이엇습니다.

17s

4

사실, 각각의 로직을 따로 테스트한다면, 이런 문제는 사라질 것입니다.